我尝试使用here提供的解决方案,但代码在第5行和第6行引发了运行时错误
Sub CalculateTAT()
Dim l As Long
l = Sheets(2).Range("A1:A" & Sheets(2).Cells(Sheets(2).Rows.Count, "A").End(xlUp).Row).Count
With Sheets("Call Logs")
.Range("R1").Formula = "=IF(OR(ISBLANK(I1),ISBLANK(F1)),"",I1-F1)"
.Range("R1").AutoFill Destination:=Range("R1:R" & l), Type:=xlFillDefault
End With
End Sub
答案 0 :(得分:0)
如果您要在带引号的字符串中使用引号(例如公式),则需要将它们加倍。
.Range("R1:R" & l).Formula = "=IF(OR(ISBLANK(I1),ISBLANK(F1)),"""",I1-F1)"
您可以一次性使用公式填充范围。无需在单独的操作中使用.AutoFill
。
附录:这可能会更好一些
l = Sheets(2).Cells(Rows.Count, "A").End(xlUp).Row
由于您从第1行开始,因此除了列中的最后一个非空行外,无需查看任何内容。除非您混合并匹配.XLSX
和.XLS
工作表,否则Rows.Count
将始终表示最后一行;没有必要像Sheets(2).Rows.Count
那样给它一个父母。您必须在.XLSX
中定义并在.XLS
中使用它才能生成错误。