我有这些工作表,我使用绿色文本作为缩写来请求数据库,完整名称仅供用户使用。我认为使用不同的颜色是个好主意,因此可以轻松删除这些注释。我已经设法查看了工作表中所有使用过的单元格。
我现在要做的是测试字体的颜色。
On Error Resume Next
If cl.Font.ThemeColor = xlThemeColorAccent3 Then
cl.Value = ""
End If
On Error GoTo 0
修改
我试过这个:
For Each WS In WB.Worksheets
For Each cl In WS.Range("A1:H10").Cells
On Error GoTo Nextiteration
If cl.Font.ThemeColor = xlThemeColorAccent3 Then
cl.Value = ""
End If
Nextiteration:
Next
Next
但它会删除我范围内的所有彩色细胞。
你能解释一下为什么吗? 你能告诉我如何只选择绿色细胞(橄榄绿,重音3)答案 0 :(得分:4)
这是由于您放置错误处理代码的方式。
当If cl.Font.ThemeColor = xlThemeColorAccent3 Then
抛出异常时,它将被忽略,并在下一步继续执行。
尝试访问颜色不是的对象的主题颜色 当前主题将导致无效的请求运行时错误。
使用Err.Number
查看是否抛出错误。
----Loop----
On Error Resume Next
If cl.Font.ThemeColor = xlThemeColorAccent3 Then
If Err.Number = 0 Then ' will be 0 only if no error occurred in the previous step
cl.Value = ""
End If
End If
Err.Clear ' Clear error state
----End Loop----