使用宏 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)"
我在 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)"