【发布时间】:2019-03-29 13:03:04
【问题描述】:
我发现了与我的问题类似的问题,但它并没有解决我想要解决的确切问题。其他问题是更改填充颜色,但指出了大多数时间范围,这可能对我的代码没有用处。基本上我正在做的是我目前在 excel 中运行一个宏,它查看整个工作簿中的一百多个不同范围。每个范围只能是 excel 中的硬编码数字,或者仅包含公式。如果一个单元格在一个应该只包含硬编码数字的范围内是一个公式,那么该单元格将变为绿色。如果应该只包含公式的范围内的单元格是硬编码的,则该单元格将变为红色。然后用户查看这些彩色单元格并修复错误。然后我正在制作一个宏来将这些彩色单元格清除为白色或其他颜色。我该怎么做呢?这很可能是一个简单的问题,但由于某种原因我一直无法弄清楚。我只希望这些特定颜色的单元格改变填充颜色。
这是我的代码的开始,这是我想要实现的非常基本的大纲
Sub Clear_Fill()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If Cells.Interior.Color = 50000 Or Cells.Interior.Color = 66000 Then
Cells.Interior.Pattern = xlNone
End If
Next ws
End Sub
【问题讨论】:
-
您需要逐个遍历工作表中的单元格并进行测试。你不能大规模地这样做。
-
“如果一个单元格在一个应该只包含硬编码数字的范围内是一个公式,那么那个单元格就会变成绿色”——你的意思是你有条件格式来改变单元格的颜色吗?
-
我没有使用条件格式我做了一个 vba 代码来做到这一点。
-
如果您使用条件格式(
=ISERROR(FORMULATEXT(A1))或=NOT(ISERROR(FORMULATEXT(A1)))),您可以删除条件以去除颜色 -
如果您有应用颜色的现有代码(发布此代码会很有帮助),那么修改它以删除任何不再适用的颜色可能会更容易。