【问题标题】:How to change cells with white fill to no fill?如何将具有白色填充的单元格更改为无填充?
【发布时间】:2020-08-18 23:01:25
【问题描述】:

我从一位同事那里收到了一张 40MB 的大表格,但他对格式一无所知。他没有隐藏网格线,而是用白色背景填充它们。我想找到所有具有白色背景的单元格并将它们更改为无填充,同时保留其他格式,例如货币和数字。

Sub White_to_no_fill_wb()

Dim ws As Worksheet


For Each ws In ThisWorkbook.Worksheets
    If ws.Cells.Interior.ColorIndex = 2 Then
        ws.Cells.Interior.ColorIndex = 0
    End If
Next ws

End Sub

这并没有给我任何错误,但它似乎也不起作用。

【问题讨论】:

  • 冒着提出愚蠢问题的风险......是否有其他背景颜色的单元格,例如黄色、蓝色、黑色,随便什么?

标签: excel vba


【解决方案1】:

遍历工作表,然后遍历使用范围内的单元格:

Sub RemoveWhiteFilling()
    
    Dim ws As Worksheet
    Dim myUsedRange As Range
    Dim myCell As Range
    
    For Each ws In ThisWorkbook.Worksheets
        Set myUsedRange = ws.UsedRange
        For Each myCell In myUsedRange
            If myCell.Interior.ColorIndex = 2 Then
                myCell.Interior.ColorIndex = 0
            End If
        Next myCell
    Next ws

End Sub

【讨论】:

    【解决方案2】:

    在我看来,我们需要设置Range.Interior的模式

    Sub SetOK()
        Dim iCnt As Integer, i As Integer, aCell As Range
        iCnt = ActiveWorkbook.Worksheets.Count
    
        For i = 1 To iCnt
            Worksheets(i).Activate
                
            For Each aCell In ActiveSheet.UsedRange
                If aCell.Interior.Color = RGB(255, 255, 255) Then
                    With aCell.Interior
                        .Pattern = xlNone
                    End With
                End If
            Next aCell
       Next i  
    End Sub
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2015-05-13
    • 2019-06-11
    • 2017-01-05
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多