【发布时间】:2019-04-12 23:45:09
【问题描述】:
我有一个包含大约 4500 个复选框的 Excel 表(我知道,这听起来很愚蠢,但它是给客户的,请不要问...)。 只需在下面编写 VBA Sub 以取消选中所有框。到目前为止它可以工作,但速度非常慢,需要超过 5 分钟才能取消选中所有 boces,并且在 Sub 运行时,整个 Excel Applikation 灰显冻结。我知道,4500 Checkboxes 很安静,但我想知道它是否真的足以让 Excel 陷入这样的麻烦......有没有人有想法?
最好的 迈克尔
Sub DeselectAll()
Application.EnableCancelKey = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim wksA As Worksheet
Dim intRow As Integer
Set wksA = Worksheets("Companies")
For intRow = 1 To 4513
wksA.CheckBoxes("Checkbox_" & intRow).Value = False
Next
End Sub
【问题讨论】:
-
这有帮助吗: If wksA.CheckBoxes("Check box " & intRow).Value = xlOn Then wksA.CheckBoxes("Check box " & intRow).Value = xlOff .+Don'不要忘记重新开始您的活动。
-
不,只有复选框
-
您可能对我的帖子感兴趣:CheckedRange Class。我认为这比用这么多复选框使您的工作簿臃肿更好。
标签: excel vba performance loops checkbox