1

スプレッドシートをクリーンアップしようとしています。カウントを外している多くの空白のセルがあります。このコードを使用してみましたが、実行時エラーが発生します。

Sub ClearAll()
    Dim c As Range, MyRange As Range

    Set MyRange = Range("A1:JS87")

    For Each c In MyRange
        If Len(c) = 0 Then c.ClearContents
    Next c

End Sub
4

2 に答える 2

3

このエラーは、結合されたセル (または同等のもの) が見つかったために発生する可能性があります。私はいくつかのテストを行いましたが、 IsEmpty はこれらの状況をスキップしているようです。いずれにせよ、完全に確実にするために、エラーキャッチも含めています。

Sub ClearAll()
    Dim c As Range, MyRange As Range
    Set MyRange = Range("A1:JS87")

    For Each c In MyRange
        On Error Resume Next
        If (Not IsEmpty(c.Value)) Then
            If Len(c) = 0 Then c.ClearContents
        End If
    Next c
End Sub
于 2013-06-24T20:00:24.557 に答える
2

おそらくこれ:cを範囲ではなくセルに変更し、範囲でセルコレクションを使用しました。

c.value も必要な場合があることに気付きました。それ以外の場合、セルのどのプロパティを見ていますか?

Sub ClearAll()
    Dim c As cell, MyRange As Range

    Set MyRange = Range("A1:JS87")

    For Each c In MyRange.cells
        If Len(c.value) = 0 Then c.ClearContents
    Next c

End Sub

Microsoft リンク

于 2013-06-24T19:54:48.603 に答える