【问题标题】:Quickly format cells in excel快速格式化excel中的单元格
【发布时间】:2014-06-24 05:23:19
【问题描述】:

我正在尝试对电子表格运行反向更新,以删除一系列单元格中的所有格式。遍历单元格足够快,但是使内部引用似乎会显着减慢代码速度。

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

干杯

【问题讨论】:

  • 关闭/打开屏幕更新怎么样? Application.ScreenUpdating = False 然后在后面的代码中将其设置为 True
  • 您的问题是 "...删除所有格式...",但您的代码只清除了几个格式属性。如果要清除 all 格式,请使用 Rng1.ClearFormats

标签: vba excel


【解决方案1】:

或者您可以先确定所有单元格,然后一次性格式化:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多