我正在尝试创建一个宏来格式化我的库存表。我只需要显示最多 8 的值,然后显示超过 9 的任何值。我还需要摆脱任何 0 或负数。
我需要在 C、D、E 和 F 列上运行此循环 4 次,并且文件长约 15,000 行。该代码在我调试时有效,但如果它只是运行,它会使应用程序崩溃。我知道我不能循环那么多,但是还有其他方法可以做到吗?
Call SetStockLevels(range("C3:C" & lastRow))
Private Sub SetStockLevels(range As range)
For Each c In range
If c.Value < 1 Then
c.ClearContents
ElseIf c.Value > 8 Then
c.Value = "9+"
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
我已经分别在宏的开头和结尾调用了这些函数。
Public Sub speedup()
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
End Sub
Public Sub normal()
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents …Run Code Online (Sandbox Code Playgroud)