【问题标题】:Using VBA to insert formula into cell with variable row numbers使用 VBA 将公式插入具有可变行号的单元格
【发布时间】:2015-08-05 19:02:59
【问题描述】:

我已经设置了我的电子表格,以便在 Z 列中输入文本时,会调用 AutoFill 宏。

我需要用公式自动填充列AAAB,直到Z 列中的最后一行文本。我用的是.AutoFill

'Range("AA3:AB3").AutoFill Destination:=Range("AA3:AB" & lastRow), Type:=xlFillValues

AA3 起始公式为:=IF(AC3="",IF(Y3="","",AB2),AC3)

AB3 起始公式为:=IF(AD3="",IF(AA3="","",WORKDAY(AA3,(Y3/8))),AD3)

这工作正常,但有时手动输入单元格值会带走原始公式,然后弄乱其余单元格的自动填充。所以我取消了自动填充,并使用ActiveCell.Row 添加了一个带有可变行号的设置公式。

这就是我现在拥有的:

Sub AutoFill()

Application.EnableEvents = False

lastRow = Range("Z900").End(xlUp).Row


Range("AA" & (ActiveCell.Row)).Formula = "=IF(AC" & ActiveCell.Row & "="", IF(Y" & ActiveCell.Row & "="","",AB" & ActiveCell.Row - 1 & "),AC" & ActiveCell.Row & ")"
Range("AB" & (ActiveCell.Row)).Formula = "=IF(AD" & ActiveCell.Row & "="",IF(AA" & ActiveCell.Row & "="","",WORKDAY(AA" & ActiveCell.Row & ", (Y" & ActiveCell.Row & "/8))),AD" & ActiveCell.Row & ")"

Application.EnableEvents = True

End Sub

现在我收到一个运行时错误,第一个 "Range("AA"..." 被突出显示。我做错了什么?

我正在使用 Excel 2010。

【问题讨论】:

  • 您可能需要在内部双引号上加倍。
  • 谢谢,成功了!出于某种原因,当我在 Z 列中输入数据时,它会将公式广告到下一行而不是相邻行。 .Autofill 函数没有这样做。
  • 尝试通过 VBA 插入包含双引号的公式可能有点棘手。

标签: vba excel excel-formula


【解决方案1】:

你可以把它简化成

Range("AA3:AA" & lastRow).Formula = "=IF(AC3="""",IF(Y3="""","""",AB2),AC3)"
Range("AB3:AB" & lastRow).Formula = "=IF(AD3="""",IF(AA3="""","""",WORKDAY(AA3,(Y3/8))),AD3)"

没有$ 的行号将自动递增。

【讨论】:

    【解决方案2】:

    所有带空格的引用 "" 已更改为 """"。引文中的引文。这修复了运行时错误以允许公式工作。

    Range("AA" & (ActiveCell.Row)).Formula = "=IF(AC" & ActiveCell.Row & "="""", IF(Y" & ActiveCell.Row & "="""","""",AB" & ActiveCell.Row - 1 & "),AC" & ActiveCell.Row & ")"
    Range("AB" & (ActiveCell.Row)).Formula = "=IF(AD" & ActiveCell.Row & "="""",IF(AA" & ActiveCell.Row & "="""","""",WORKDAY(AA" & ActiveCell.Row & ", (Y" & ActiveCell.Row & "/8))),AD" & ActiveCell.Row & ")"
    

    【讨论】:

      猜你喜欢
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 2022-12-05
      • 2015-12-05
      • 2022-11-22
      • 2022-01-14
      相关资源
      最近更新 更多