在Excel中,我有一个元素列表。每一行都有一个颜色。 对于每种颜色,我都会创建一个按钮来隐藏其他行。Excel VBA - 按颜色比较行时的改进时间
例如,如果我点击红色的按钮,所有不是红色的行都被隐藏。
而且还有一个复位按钮,取消隐藏所有行 下面的代码:
Sub Red_Click()
Dim Color_Index As Long
Color_Index = Range("I1").Interior.ColorIndex
Call HideOther(Color_Index)
End Sub
Sub Green_Click()
Dim Color_Index As Long
Color_Index = Range("E1").Interior.ColorIndex
Call HideOther(Color_Index)
End Sub
Sub HideOther(Color_Index)
Set rRange = Range("$A4:$A313")
For Each cl In rRange
currentColIndex = cl.Interior.ColorIndex
If currentColIndex <> Color_Index Then
cl.EntireRow.Hidden = True
End If
Next cl
End Sub
Sub Reset()
Cells.EntireRow.Hidden = False
End Sub
我比较我的色彩每一行的颜色。
我有300行,所以需要一些时间(约15秒),有没有办法来改善时间?我问这是因为重置/取消隐藏功能是即时的。
我在Excel中的一个初学者,所以也许我没有看到更容易的解决方案
如果您有Excel 2007或更高版本,你可以通过颜色自动筛选。在做宏时录制一个宏会给你基本的代码。 – Rory
在开始时关闭屏幕更新可能会有所帮助。 Application.ScreenUpdating = False(结束时返回true)。 –
此外,您可能会禁用事件并再次启用它们,禁用自动重新计算并重新启用它等。 – user3819867