VBA删除绿色文本:Font.ThemeColor

时间:2013-05-06 10:30:46

标签: excel vba excel-vba

我有这些工作表,我使用绿色文本作为缩写来请求数据库,完整名称仅供用户使用。我认为使用不同的颜色是个好主意,因此可以轻松删除这些注释。我已经设法查看了工作表中所有使用过的单元格。

我现在要做的是测试字体的颜色。

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)

1 个答案:

答案 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----