【发布时间】:2016-09-12 04:02:33
【问题描述】:
我有一个 Excel,我只想保留确定字体颜色的值,在本例中为红色。 我有一个循环,逐个单元格地检查单元格是否符合该条件。代码是:
For nrow = 1 To frow
For ncol = 1 To fcol
If Cells(nrow, ncol).Font.Color <> RGB(255,0,0) Or Cells(nrow, ncol).Font.ColorIndex = 0 _
Or Cells(nrow, ncol).Font.Color = xlNone Then
Cells(nrow, ncol).ClearContents
End If
Next
Next
但它不能正常工作。有未删除的单元格。显然,这些单元格的字体设置为“自动”,条件“if”忽略了这些单元格。我不明白。它应该可以工作,因为该值应该与我在条件“if”中指示的值不同。
所以我的问题是,如何删除那些自动设置字体颜色的单元格?我需要做什么?
【问题讨论】:
-
我会使用 VBA 常量作为红色 vbRed 而不是 RGB 值作为标准做法,并在您手动执行删除操作时尝试录制宏,看看该代码与您的代码有何不同。
-
我发现了一个有效的转机。如果字体颜色为红色,则更改透视图并且不执行任何操作,否则删除内容。
-
如果您仍然感兴趣:
If Cells(x y).Font.ColorIndex = xlAutomatic