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

我已经设置了电子表格,以便在Z列中input文本时,将调用AutoFillmacros。

我需要自动填充列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)

这工作正常,但有时单元格值手动input,拿走原来的公式,然后搞乱其余单元格的自动填充。 所以我拿走了自动填充并使用ActiveCell.Row添加了一个具有variables行号的公式。

这是我现在所拥有的:

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

你可以简化它

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

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