gpt4 book ai didi

vba - 使用VBA将公式插入具有可变行号的单元格

转载 作者:行者123 更新时间:2023-12-03 02:43:30 25 4
gpt4 key购买 nike

我已设置电子表格,以便在 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。

最佳答案

您可以将其简化为

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

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

关于vba - 使用VBA将公式插入具有可变行号的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30419014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com