具有已定义范围的MergeCells(运行时错误1004)

时间:2014-07-01 15:54:11

标签: excel-vba merge runtime-error vba excel

我尝试根据用户输入改变的两个单元格值来合并单元格,但是我的探针具有以下代码:

    SafB = 5 + 2 * Sheets("LinksTable").Range("X2").Value - 2 * Sheets("LinksTable").Range("W2").Value
    SafE = 5 + 2 * Sheets("LinksTable").Range("X2").Value - 1

    Set SafRB = Sheets("Report").Range("B1").Offset(SafB - 1, 0)
    Set SafRE = Sheets("Report").Range("C1").Offset(SafE - 1, 0)

    Sheets("Report").Range("SafRB:SafRE").MergeCells = True

例如,单元格W2和X2的值会根据为给定控制杆选择的指标数量而变化,在这种情况下"安全"。因此,如果用户为安全杠杆选择2个指标,则W2 = 2(该杠杆的指标数量),X2 = 2(报告中的指标累计数量;安全性是第一个杠杆,累计等于此情况下的总计)。

鉴于上述代码,SafB = 5,SafE = 8。因此,我需要合并的单元格是B5:C8。

但是,每当我运行上面的代码时,都会收到以下错误消息:

  

"运行时错误' 1004':应用程序定义或对象定义错误"。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您正在发送字符串文字“SafRB:SafRE”作为范围参数。此错误表示您的工作表或工作簿上没有定义此类范围。

我认为这应该有效。使用范围变量作为Range方法的参数,如下所示:

Sheets("Report").Range(SafRB, SafRE).Merge