这是我的第一篇文章,所以如果我需要进行任何更改,请告诉我。
我找到了一些优化循环的方法示例,但我似乎无法将它们中的任何一个有效地应用于我的代码。我要做的是在单列中循环大约 170 个单元格,并根据单元格值是否为 0 隐藏或显示整行。
我希望每次激活某些工作表时都运行代码。现在这段代码运行大约需要 4 秒。似乎它应该比这快得多!这就是我来这里寻求帮助的原因。
这是我正在使用的代码(FormatSheet 返回一个 BOOLEAN,其中 True 表示可以在此表上执行此代码,而 False 表示跳过在此表上执行此代码:
Private Sub mobjWb_SheetActivate(ByVal Sh As Object)
Dim r As Long
Dim z As Long
Dim varray As Variant
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
If Not FormatSheet(Sh) Then
Exit Sub
End If
Set varray = Range("$F$1", Cells(Rows.count, "F").End(x1up)).Value
For Each r In varray
z = r.Value
If z = 0 Then
Range("F" & r).EntireRow.Hidden = True
Else
Range("F" & r).EntireRow.Hidden = False
End If
Next r
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
End Sub