Excel 在sumifs公式中使用工作簿名称
我正在尝试使用Excel 在sumifs公式中使用工作簿名称,excel,vba,Excel,Vba,我正在尝试使用sumifs生成不同工作簿中名为“Details sheet”的工作表中特定列的总和,检查“Details sheet”中的其他两列是否与当前工作表中的值匹配。 现在我有以下几点 ThisWB = ActiveWorkbook.Name 在宏的开头 在宏的后面部分,我将焦点切换到工作表/工作簿,并使用: Dim sheet As String sheet = "'[" & ThisWB & "]Details Sheet'!" Range("F3").Selec
sumifs
生成不同工作簿中名为“Details sheet
”的工作表中特定列的总和,检查“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)"
这会产生一个错误。我尝试过其他各种方法来参考这张表,但没有一种有效
当我引用带有工作簿全名的工作表时,即[workbook1]详细信息工作表!'$D:$D
,确实有效
这里缺少什么?您需要
公式
属性,而不是公式1c1
,并且不需要间接,因为您在代码中进行串联,而不是公式本身:
Range("F3").Formula = _
"=SUMIFS(" & sheet & "$H:$H," & sheet & "$D:$D,""=""&$B3," & sheet & "$E:$E,""=""&$C3)"
为什么你需要间接的在那里?我也尝试过没有间接的,但那不起作用。间接引用允许我使用文本创建引用,这似乎是该引用的逻辑用法,请检查:。