VBA使用activex复选框隐藏和取消隐藏行

VBA使用activex复选框隐藏和取消隐藏行,vba,excel,hide,rows,Vba,Excel,Hide,Rows,有人能帮我提高效率吗?它大约运行10秒。多谢 我已经修改了这段代码,以隐藏工作表a列中公式结果中包含“hide”的行 Sub Hide_Rows() Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = False With ActiveSheet For Each cell In .Range("a7:a115") If cell.Value = "Hide" Then cell.

有人能帮我提高效率吗?它大约运行10秒。多谢

我已经修改了这段代码,以隐藏工作表a列中公式结果中包含“hide”的行

Sub Hide_Rows()

 Application.Calculation = xlCalculationAutomatic
 Application.ScreenUpdating = False
 With ActiveSheet
For Each cell In .Range("a7:a115")
 If cell.Value = "Hide" Then
 cell.EntireRow.Hidden = True
 End If
 Next
 End With
 Application.ScreenUpdating = True
 End Sub
我有一个类似的Show_Rows sub,用于取消隐藏隐藏的行。我已将按钮结果(True或False)链接到单元格A1,然后使用If语句在复选框VBA中隐藏或显示_行

Private Sub CheckBox1_Click()
If Cells(1, 1).Value = True Then
     Hide_Rows
 Else
    Show_Rows
End If
End Sub

你的问题可能与许多复杂的公式有关,如David Zemens所说。您对
应用程序.Calculation
的想法是正确的,但在开始时应该是
Application.Calculation=xlCalculationManual
,然后在结束时是
Application.Calculation=xlCalculationAutomatic

这对我来说不到1秒。除了在运行时重新计算一些非常复杂的工作表公式外,很难说是什么导致了您的延迟。我确实有一系列复杂的公式可能会导致性能问题。感谢您查看。请尝试在过程开始时禁用计算,然后在过程结束时重新启用。我能够做到这一点,非常感谢您做到了!谢谢你,库尔特。