如何从SUMIF Excel函数中的单元格值引用工作表名称

时间:2017-11-07 06:11:28

标签: excel excel-vba vba

我有这样的案例

=SUMIF(SBI!C:C,"B",SBI!A:A)

这里SBI是我硬编码的工作表名称。我想提一下这个Sheet名称的引用而不是硬编码。 我已经在当前工作表中有Column,其中列中提到了Sheet名称。

1 个答案:

答案 0 :(得分:1)

如果您没有使用VBA,那么您需要一个包含工作表名称的间接单元格引用。例如。在单元格A1中,您的名称为“SBI”,则公式为:

=SUMIF(INDIRECT("'"&$A$1&"'!C:C"),"B",INDIRECT("'"&$A$1&"'!A:A"))

如果您正在使用VBA,那么在代码中您只需要一个Worksheet变量并可以使用其Range属性或只连接一个字符串:

Dim WS as Worksheet
Set WS = Thisworkbook.Worksheets("SBI")

Range("A:A").Formula = ("=SUMIF('" & WS.Name & "'!C:C,""B"",'" & WS.Name & "'!A:A)")

我在任何工作表名称周围加上引号的原因是工作表名称中有空格,例如。 Sheet2!A:A会有效,但Sheet 2!A:A不会...您应始终将工作表名称放在引号中以确保安全和面向未来:D 'Sheet 2'!A:A