【问题标题】:error on getting the name of first sheet into the formula using macro excel 2007使用宏 excel 2007 将第一张工作表的名称输入公式时出错
【发布时间】:2018-02-17 04:37:18
【问题描述】:

我已尝试在 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)"

【问题讨论】:

    标签: excel excel-2007 vba


    【解决方案1】:

    您需要将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)"
    

    (通常最好将工作表名称用单引号括起来以避免名称中包含空格等问题。)

    【讨论】:

      【解决方案2】:

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

      应该是这样的

      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)"
      

      【讨论】:

      • 是的,正是 YowE3K。我曾尝试在此处更正代码,而不是在 VBA 中。感谢警告
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多