2

これらのワークシートでは、緑色のテキストを略語として使用してデータベースを要求しています。完全な名前はユーザー専用です。これらのコメントを簡単に削除できるように、別の色を使用することをお勧めします。ワークシートで使用されているすべてのセルを調べることができました。

私が今やりたいことは、フォントの色のテストです。

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)

4

1 に答える 1

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----
于 2013-05-06T10:39:53.333 に答える