优化隐藏列的速度

我写了一个简短的脚本来隐藏列取决于单元格的值。

该脚本的作品,但它是非常缓慢的,往往是错误的列数很大,例如> 200列的Excel错误。

Sub Bouton_hidingColumns() Dim NumColonne As Integer For NumColonne = Range("I11").Column To Range("IH11").Column Step 3 If WorksheetFunction.Sum(Range(Cells(11, NumColonne), Cells(119, NumColonne))) = 0 Then Columns(NumColonne).Resize(, 3).Hidden = True End If Next NumColonne End Sub 

当列数很高时,脚本失败的示例: 来自Excel的Msgbox

不可能dedéfinirlapropriété隐藏de la classe山脉

(英文无法设置范围类的隐藏属性

任何人都可以提出解决scheme 预先感谢您的帮助。

testing,然后隐藏在一个单一的运行对我来说没关系

 Sub OneWay() Dim rng1 As Range Dim rng2 As Range Dim rng3 As Range Set rng1 = Range("I11:IH119") For Each rng2 In rng1.Columns If rng2.Column Mod 3 = 0 Then If Application.Sum(rng2) = 0 Then If Not rng3 Is Nothing Then Set rng3 = Union(rng3, rng2.Resize(, 3)) Else Set rng3 = rng2.Resize(, 3) End If End If End If Next If Not rng3 Is Nothing Then rng3.EntireColumn.Hidden = True End Sub 

在脚本开始时, ActiveWindow.Visible = False有时会产生很大的变化。

确保在错误捕获时将ActiveWindow.Visible = True