2016-11-12 83 views
3

我写了一个隐藏列的简短脚本,具体取决于单元格的值。优化隐藏列的速度

该脚本可以工作,但速度很慢,而且经常出现列数很大(例如> 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 

例如,当列数高: Msgbox from Excel

不可能去définir拉propriété隐藏德拉CLASSE范围

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

任何人都可以提出解决方案吗?预先感谢您的帮助。

+0

的是,当你得到这个错误的列数? – user3598756

回答

3

测试,然后在单次运行藏好,我

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 
0

ActiveWindow.Visible = False在您的脚本开始处有时会产生很大的差异。

确保你把 ActiveWindow.Visible = True错误捕捉。

+0

我提供了关于执行速度缓慢的提示。 – user6788933