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

微软链接

于 2013-06-24T19:54:48.603 回答