使用宏 excel 将第一个 sheet 的名称输入公式时出错 2007

error on getting the name of first sheet into the formula using macro excel 2007

我在 Excel 2007 年尝试使用下面的代码,它生成了 运行 时间错误 1004。我尝试了不同的方法来解决但无法解决。需要帮助解决错误,因为我的第一个工作表的每个名称都不同。

   Dim shtName As String
   shtName = ActiveWorkbook.Worksheets(1).Name
   Worksheets(2).Range("F2").Formula = "=AVERAGEIFS(&shtName!E:E,&shtName!A:A,"">="" & A2,&shtName!A:A,""<"" & B2)"

您需要将 shtName 变量的值插入到公式中,而不是变量名称本身:

Dim shtName As String
shtName = ActiveWorkbook.Worksheets(1).Name
Worksheets(2).Range("F2").Formula = "=AVERAGEIFS('" & shtName & "'!E:E,'" & shtName & "'!A:A,"">="" & A2,'" & shtName & "'!A:A,""<"" & B2)"

(如果名称包含 space 等,将 sheet 名称括在单引号中通常是个好主意,以避免出现问题)

您应该将变量从字符串中分离出来,方法是将它们放在“”标记之外。

所以应该是

Dim shtName As String
shtName = ActiveWorkbook.Worksheets(1).Name
Worksheets(2).Range("F2").Formula = "=AVERAGEIFS(" & shtName & "!E:E," & shtName & "!A:A,"">="" & A2," & shtName & "!A:A,""<"" & B2)"