2014-06-05 57 views
0

我正在試圖製作一個每隔幾列都有小計的表。我的VBA代碼帶來的,並從另一片類型的數據段,現在我試着寫了代碼,具有小計公式放在這裏是我有:vba中的相對引用小計公式

Sub Macro21() 
Dim FI(1 To 3) As Variant 
FI(1) = "Fixed Income" 
FI(2) = 10 
FI(3) = 21 

Sheets("Sheet1").Cells(FI(2), 3).FormulaR1C1 = "=SUBTOTAL(9,R[1]C:R[FI(3)-FI(2)]C)" 

End Sub 

FI(2)和FI( 3)是本節的開始和結束行。我在宏的其他部分使用它們,並且在新項目放在一個類別下時更新它們。

當我運行它,它給我一個錯誤。有任何想法嗎?

回答

0

我認爲你需要構建公式作爲一個字符串,而不是讓它參考Variant陣列。如何:

Sheets("Sheet1").Cells(FI(2), 3).FormulaR1C1 = _ 
    "=SUBTOTAL(9,R[1]C:R[" _ 
    & CStr(FI(3)-FI(2)) _ 
    & "]C)" 

這假設得到的字符串是你想計算一下......

+0

你的邏輯是有道理的,但它仍然給我一個錯誤。在旁邊注意如何正確使用_ –

+0

1)什麼錯誤? 2)'_'作爲一行代碼中的最後一個字符(並且前面有一個空格)可以在下一行代碼中繼續當前語句。 –

+0

有人嗎? :-) –