【发布时间】:2015-08-05 19:02:59
【问题描述】:
我已经设置了我的电子表格,以便在 Z 列中输入文本时,会调用 AutoFill 宏。
我需要用公式自动填充列AA 和AB,直到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