繁体   English   中英

VBA代码删除包含特定填充颜色的单元格?

[英]VBA code to delete cells that contain a certain fill color?

我是VBA的新手,正在尝试删除具有特定填充颜色的单元格。 我无法删除具有填充单元格的整行,因为那样会删除我需要的数据。 我正在尝试使用一个循环,但它不会删除包含我指定的填充颜色的所有单元格,只会删除电子表格顶部的一些单元格。 如果我多次运行该宏,它将最终删除具有我指定颜色的所有单元格。

Range("A1:AF150").Select
For Each cell In Selection
    If cell.Interior.Color = RGB(112, 48, 160) Then
        cell.Delete
    End If
Next cell

这是因为删除单元格后,下面的数据将向上移动,而循环将转到下一个单元格,而忽略了刚刚向上移动的单元格。

不可能为每个循环使用向后循环,但是您可以这样进行:

Set rng = Range("A1:AF150")
For i = rng.Cells.Count To 1 Step -1
    With rng.Item(i)
        If .Interior.Color = RGB(112, 48, 160) Then .Delete
    End With
Next

我也建议设置一个工作簿对象。

另外,您确定要删除而不清除单元格吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM