将多个工作表的单元格区域中的零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