2013-05-03 52 views
0

在宏的某个点,我想删除我的单元格中使用绿色文本完成的所有评论。如何避免运行时错误与themecolor

为此,我只需使用2“for”循环:

For Each WS In WB.Worksheets 
For Each cell In WS.UsedRange.Cells 

    If cell.Font.ThemeColor = xlThemeColorAccent3 Then 
     cell.Value = "" 

    End If 
Next 
Next 

但有些时候的themeColor相关似乎没有定义和代码停止与“5”无效的过程调用或参数运行时错误。

我试图自己找到解决方案。由于我有很多其他颜色,我无法为每个单元格设置默认值。

如何避免此运行时错误?

回答

1

如果它只是避免它,你可以创建一些不那么好样的try-catch的(至极不VBA存在),就像这样:

For Each WS In WB.Worksheets 
     For Each cell In WS.UsedRange.Cells 

      on error goto 1 
      If cell.Font.ThemeColor = xlThemeColorAccent3 Then 
       cell.Value = "" 

      End If 
1   on error goto 0 

     Next 
    Next 
+1

如果可以的话,我会建议' On Error Resume Next [do code] On Error Goto 0'。 – 2013-05-03 19:29:15

+0

goto 0的用途是什么?哪里是0? – 2013-05-06 09:13:04

+0

我仍然不知道“去0”的目的,我认为一个“在错误恢复接下来会做得更好” – 2013-07-11 14:41:56