1

我从另一篇文章中获得了一些代码,这些代码帮助我格式化代码,使我能够删除给定列、其内容和注释中的零。但是,代码也删除了第一个单元格(不是 0 且不包含零)。代码是:

Sub Testme()
    Dim rng1 As Range
Set rng1 = Columns(2)
With rng1
    .AutoFilter 1, "0"
    With rng1.Offset
         .ClearContents
         .ClearComments
    End With
End With
End Sub

这份清单:

6.28    91.4
6.28    95.5
6.28    96.2
6.28    86.9
6.28    0
6.28    100.7
6.28    90.1

变成:

6.28    
6.28    95.5
6.28    96.2
6.28    86.9
6.28    
6.28    100.7
6.28    90.1

任何如何阻止它删除不包含零的第一行的想法都值得赞赏。

4

2 回答 2

1

无需自动过滤。您可以进行查找和替换:

Columns(2).Replace What:="0", Replacement:="", LookAt:=xlWhole
于 2013-07-11T15:01:58.687 回答
0

您对 rng1 的定义是选择整个列。因此,当您为清除进行偏移时,您将擦除所有已过滤的列 C。

此代码将执行您想要的操作:

Sub Testme()
    Dim rng1 As Range
    Set rng1 = Sheet1.UsedRange 
    With rng1
       .AutoFilter 1, "0"
        With rng1.Offset(1, 0)
            .ClearContents
            .ClearComments
        End With
    End With
End Sub
于 2013-07-11T15:11:37.897 回答