使用macros删除excel中的零

我从另一个post得到了一些代码,帮助我对代码进行格式化,使我能够删除给定列中的零,其内容和注释。 但是,代码也是删除第一个单元格(不是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 

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

无需自动filter。 你可以做一个查找和replace:

 Columns(2).Replace What:="0", Replacement:="", LookAt:=xlWhole 

rng1的定义是select整个列。 所以,当你清除偏移时,你正在清除所有被过滤的列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