ActiveCell.Formula运行时错误VBA

时间:2013-07-18 08:17:25

标签: vba dynamic runtime-error excel-formula

我正在尝试使用VBA向excel插入公式,但它不起作用。它返回运行时错误1004.我在这里尝试了一些技巧或答案,但它们似乎与我的情况无关。

以下是代码:

ActiveCell.Formula = "=COUNTIFS('DataSheet_B'!$C$4:$C$13268;B6;'DataSheet_B'!$M$4:$M$13268;A6;'DataSheet_B'!$J$4:$J$13268;$G$5)"

在第二步中,我尝试将13268中的$C$13268替换为动态变化的变量。我只需要在公式中插入它。这就是我试图对公式进行硬编码的主要原因。

或者,我使用以下公式:

Dim sVal As String
    sVal = "13268"

ActiveCell.FormulaR1C1 = "=COUNTIFS(DataSheet_B!R4C3:R[" & sVal & "]C3,RC[-5],DataSheet_B!R4C13:R[" & sVal & " ]C13,RC[-6],DataSheet_B!R4C10:R[" & sVal & " ]C10,R5C7)"

但是,它不会返回$C$13268

的第二个美元符号

谢谢

1 个答案:

答案 0 :(得分:0)

将所有; 分号替换为, 逗号,以

开头
ActiveCell.Formula = "=COUNTIFS('DataSheet_B'!$C$4:$C$13268,B6,'DataSheet_B'!$M$4:$M$13268,A6,'DataSh‌​eet_B'!$J$4:$J$13268,$G$5)"

如果你想在字符串中使用变量,那么

Dim sVal As Long
    sVal = 13268

ActiveCell.Formula = "=COUNTIFS('DataSheet_B'!$C$4:$C$" & sVal & ";B6;'DataSheet_B'!$M$4:$M$" & sVal & ";A6;'DataSheet_B'!$J$4:$J$" & sVal & ";$G$5)"