所以我试图找出一种方法来使用VBA执行以下技巧:
假设我们有一个巨大的Excel文件。
C500有一些文字。 M500有一个值,它可以有一个颜色填充,或者只是一个带有数字的默认白色单元格。 我想要实现的是当M500没有填充颜色时删除C500和M500。
我知道这是一个简单的任务,至少它看起来像那样,我知道它可以通过几行代码解决。我仍然无法通过搜索找到我需要的谷歌或堆栈溢出,可能是因为我的搜索能力差,或者因为我想做的事情非常具体。
任何帮助都将深表感谢,我真的很想看到任何类似的宏网站,我可以作为参考。对不起,如果这个问题已经回答了。
答案 0 :(得分:1)
我正在重写这个答案,因为需求需要迭代为范围中的每个单元格定义的任何FormatCondition以及单元格的其他值。可以找到一种简洁的方法,例如here。基本上,它包括:
For X = 1 To Cell.FormatConditions.Count
With Cell.FormatConditions(X)
If .Type = xlCellValue Then
...
If CellInterior Then
DisplayedColor = IIf(ReturnColorIndex, Cell.Interior.ColorIndex, Cell.Interior.Color)
Else
DisplayedColor = IIf(ReturnColorIndex, Cell.Font.ColorIndex, Cell.Font.Color)
通过不同方式探索单元格来定义填充颜色。
所以你应该遍历范围
Dim rng As Range, cell As Range
Set rng = Range("M500:M550")
For Each cell In rng
rem check the filling with the method in the link
rem if it's the colorindex you want
rem cell.Value = ''
rem Also, get the row number and delete content of range ("C5XX")
Next cell