2013-07-18 221 views
1

我試圖插入一個公式來使用VBA,但它不起作用。它返回一個運行時錯誤1004.我嘗試了一些技巧,或者在這裏回答,但它們似乎與我的案例不相關。ActiveCell.Formula運行時錯誤VBA

下面是代碼:

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)" 

在第二步驟中,我試圖通過動態地改變一個變量來替換$C$1326813268。我只需要在公式中插入它。這就是我試圖對公式進行硬編碼的主要原因。

另外,我用下面的公式:

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

第二美元符號謝謝

+0

使用調試器中使用的變量。看看你的動態變量在運行時錯誤中保留了什麼值 – 2013-07-18 08:29:54

+0

我還沒有在那一步。我希望靜態公式先工作。我已經嘗試過與另一個公式的動態版本,但它工作正常。上面的代碼不起作用。 – Helios

+1

try'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)「' – 2013-07-18 08:45:10

回答

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)" 
+0

如何使用整數(int)而不是長整型。+ int +似乎不起作用。 – Helios

+1

你是指「整數」?用法:'dim myInt as Integer',注意[其限制](http://msdn.microsoft.com/zh-cn/library/office/aa164754(v = office.10).aspx) – 2013-07-18 09:08:24

+0

長時間工作正常!謝謝 – Helios