将多个工作表的单元格区域中的零replace为非特定工作表名称或工作表的数量

我想清除多个工作表中特定范围内value = 0的单元格。 每次运行macros时,工作表的编号和名称都会有所不同。 这是我想出来的,但它不起作用。

' ' REMOVEZERO_KVEMoxyModel Macro ' ' Sub REMOVEZERO_KVEMoxyModel() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Call RemoveZeros End Sub Sub RemoveZeros() For Each cell In Range("I3:I500") If cell.Value = "0" Then cell.Clear End Sub 

尝试下面的代码:它将遍历ActiveWorkbook所有工作表。 在这个例子中,如果Sheet.Name = "Sheet1"Sheet.Name = "Sheet2" (使用Select Case ),它将进入并清除指定Range内的所有“0”。

 Option Explicit Sub REMOVEZERO_KVEMoxyModel() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Select Case ws.Name ' only run the clear "0" cells in "Sheet1" and "Sheet2" >> modify according to your needs Case "Sheet1", "Sheet2" Call RemoveZeros(ws) End Select Next ws End Sub Sub RemoveZeros(sht As Worksheet) Dim cell As Range For Each cell In sht.Range("I3:I500") If cell.Value = "0" Then cell.ClearContents Next cell End Sub 

编辑1 :清除所有工作表的“0”单元格(删除Select Case ws.Name因为它不需要)

 Sub REMOVEZERO_KVEMoxyModel() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Call RemoveZeros(ws) Next ws End Sub