首页 > 解决方案 > 循环使用白色填充的所有单元格并将它们更改为无填充

问题描述

我有一个巨大的电子表格。我想遍历所有单元格并将白色填充更改为无填充。这段代码要么耗时太长,要么让我的电脑崩溃,所以我无法判断它是否真的有效。有人看到它有什么问题吗?

Sub Remove_White_Cells()

    Application.ScreenUpdating = False

    Dim cell As Range
    Dim wb As Workbook
    Dim ws As Worksheet

    For Each ws In ActiveWorkbook
        For Each cell In Worksheets
            If cell.Interior.Color = RGB(0, 0, 0) Then
                cell.Interior.Color = xlNone
            End If
        Next cell
    Next ws


End Sub

标签: excelvba

解决方案


首先,循环遍历每个工作表中每个单元格的代码效率极低。出于这个原因,我会使用.UsedRange将其限制为使用过的单元格。

结果如下:

Sub Remove_White_Cells()

Application.ScreenUpdating = False

Dim cell As Range
Dim wb As Workbook
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets 'Worksheet iterator
    For Each cell In ws.UsedRange.Cells 'Select only used cells
        If cell.Interior.Color = RGB(0, 0, 0) Then
            cell.Interior.Color = xlNone
        End If
    Next cell
Next ws

Application.ScreenUpdating = True

End Sub

推荐阅读