2015-03-25 87 views
0

我試圖使用sumifs基於檢查'details sheet'中的其他兩列匹配其中的值來在不同工作簿中生成名爲'Details Sheet'的工作表中特定列的總和當前工作表。 現在我有以下在sumifs公式中使用工作簿名稱

ThisWB = ActiveWorkbook.Name 

在宏的開始。

在宏後來我焦點切換到片/工作簿,我的工作出來,並使用:

Dim sheet As String 
sheet = "'[" & ThisWB & "]Details Sheet'!" 
Range("F3").Select 
ActiveCell.FormulaR1C1 = _ 
     "=SUMIFS(INDIRECT(sheet & ""$H:$H"")),INDIRECT(sheet & ""$D:$D"")),""=""&$B3,INDIRECT(sheet & ""$E:$E"")),""=""&$C3)" 

這產生一個錯誤。我曾嘗試過其他各種方式來引用該工作表,但他們都沒有工作。

當我使用工作簿的全名(即[workbook1]Details Sheet!'$D:$D)參考工作表時,確實有效。

我在這裏錯過了什麼?

+0

爲什麼你需要在那裏間接? – Rory 2015-03-25 12:33:10

+0

我已嘗試沒有間接也,但沒有奏效。間接允許我使用文本創建引用,這似乎是邏輯使用 – Bobert3 2015-03-25 12:34:09

+0

請檢查:[當某人回答我的問題時該怎麼辦?](http://stackoverflow.com/help/someone-answers) 。 – 2015-04-25 04:13:03

回答

0

您需要Formula屬性,而不是FormulaR1c1因爲你正在做的級聯中的代碼,而不是公式本身就不需要間接:

Range("F3").Formula = _ 
    "=SUMIFS(" & sheet & "$H:$H," & sheet & "$D:$D,""=""&$B3," & sheet & "$E:$E,""=""&$C3)" 
+0

非常感謝你!那工作。 – Bobert3 2015-03-25 13:08:12

相關問題