在sumifs公式中使用工作簿名称

时间:2015-03-25 12:28:50

标签: excel-vba vba excel

我正在尝试使用sumifs生成一个名为“Details Sheet”的工作表中特定列的总和,该工作簿基于检查“{{1}中的其他2列” }'匹配当前工作表中的值。 现在我有以下

details sheet

在宏的开头。

稍后在宏中,我将焦点切换到我正在处理的工作表/工作簿,并使用:

 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)" )引用工作表时,它确实有效。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您需要Formula属性而不是FormulaR1c1并且您不需要INDIRECT,因为您在代码中进行连接,而不是公式本身:

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