2014-06-24 52 views
0

我試圖在電子表格上運行反向更新以從一系列單元格中刪除所有格式。迭代通過單元格足夠快,但是使內部引用顯着減慢代碼的速度。在excel中快速格式化單元格

Set Rng1 = ThisWorkbook.Worksheets(ws.Name).Range("A17:bb300") 
For Each c1 In Rng1 
    If c1.Interior.Pattern = xlSolid Then 
     With c1.Interior 
      .Pattern = xlNone 
      .TintAndShade = 0 
      .PatternTintAndShade = 0 
     End With 
    End If 
Next c1 

乾杯

+0

如何關閉/開啓屏幕更新? 'Application.ScreenUpdating = False'然後在代碼中將其設置爲'True'。 – L42

+1

你的問題說:_「...刪除所有格式...」,但你的代碼只清除幾個格式屬性。如果你想清除_all_格式,使用'Rng1.ClearFormats' –

回答

0

或者你也可以先確定所有單元格,然後一氣呵成格式:

Dim Rng1 As Range, Rng2 As Range 
Set Rng1 = ThisWorkbook.Worksheets(ws.Name).Range("A17:bb300") 

For Each c1 In Rng1 
    If c1.Interior.Pattern = xlSolid Then 
     If Rng2 Is Nothing Then 
      Set Rng2 = c1 
     Else 
      Set Rng2 = Union(Rng2, c1) 
     End If 
    End If 
Next c1 

With Rng2.Interior 
    .Pattern = xlNone 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With