运行后macros崩溃。 无论如何,使代码/公式更有效率?

我有大约250,000行,下面的代码需要很长的时间来处理。 有没有办法缩短公式或创build自定义函数,以使其运行更快,更高效?

Sub test123() Dim lastrow, lastrowAI As Long lastrow = Cells(Rows.Count, "C").End(xlUp).Row lastrowAI = Cells(Rows.Count, "AI").End(xlUp).Row For i = lastrowAI + 1 To lastrow Range("AI" & i).Formula = "=IF(F" & i & ">=EDATE(MAX($F$11:$F$1048576),-23),""Latest Months"",""Consol. Years"")" Next End Sub 

就在这里。 一次input所有单元格中的公式,而不是在循环中进行。

未经testing

 Sub test123() Dim lastrow, lastrowAI As Long Dim ws As Worksheet Dim sFormula As String '~~> Change this to the relevant worksheet Set ws = ThisWorkbook.Sheets("Sheet1") With ws lastrow = .Cells(.Rows.Count, "C").End(xlUp).Row lastrowAI = .Cells(.Rows.Count, "AI").End(xlUp).Row + 1 sFormula = "=IF(F" & lastrowAI & _ ">=EDATE(MAX($F$11:$F$1048576),-23),""Latest Months"",""Consol. Years"")" .Range("AI" & lastrowAI & ":AI" & lastrow).Formula = sFormula End With End Sub