【发布时间】:2021-03-15 13:33:46
【问题描述】:
我有一个电子表格需要切换显示/隐藏取决于 G 列值的行。
我有两个按钮:
- [Show All] - 这将执行一个 sub 来显示所有行。
- [Hide FALSE] - 这将执行一个 sub 来隐藏其在 G 列中的值 = FALSE 的任何行
问题是 Sub 只需要跑完 250 行,但完成 sub 大约需要 5 分钟。我向你保证,这与我的 PC 规格无关。
Excel VBA 代码:
'This sub takes about 5 minutes to complete (WHY?)
Private Sub btnHideFalse_Click()
Application.ScreenUpdating = False
Dim i As Integer
Dim wsSelect As Worksheet
Set wsSelect = ThisWorkbook.ActiveSheet
For i = 2 To 250
'Cells(i,7) point to the current row's column G value
wsSelect.Rows(i).EntireRow.Hidden = (wsSelect.Cells(i, 7).Value = False)
Next i
Set wsSelect = Nothing
Application.ScreenUpdating = True
End Sub
'This sub works great
Private Sub btnShowAll_Click()
ThisWorkbook.ActiveSheet.Rows("1:250").EntireRow.Hidden = False
End Sub
【问题讨论】:
-
值是“假”吗?
wsSelect.Cells(i, 7).Value = "False" -
@Nathan_Sav 哈哈……你是对的。它现在有效......我不敢相信这是问题
-
不用担心 :) HTH