这似乎应该是一个相当简单的任务,但我似乎无法让它工作 - 我只想要一个简单的宏,它将遍历工作表中的所有单元格。如果单元格等于零(或 kicks 为空白),则只需将其删除,将列中的其他单元格向上移动一个。
我试图在整个文档上执行此操作无处可去,因此我尝试在单个列上执行此操作:
Sub Macro6()
'
' Macro6 Macro
'
' Keyboard Shortcut: Ctrl+q
'
For i = 81 To 1 Step -1
If Range("A" & i) = "0" Then Range("A" & i).Delete
Next i
End Sub
我不想删除任何行,只是删除单个单元格(如果它们具有值0
)。
但显然仍然一无所获。
选择要删除其中空白的范围。主页>编辑 - 查找和选择,转到特殊,空白,确定,在数组中选择,删除...,向上移动单元格,确定。
要将相同的过程应用于包含0
请选择范围以删除0
s并启动(即在上面之前),将它们替换为任何内容:
主页>编辑,查找和选择,在查找内容:中输入0
,选中匹配整个单元格内容并确保替换为:为空,全部替换。
这个小宏将删除空格和零:
Sub dural()
Dim rKill As Range, r As Range
Set rKill = Nothing
For Each r In ActiveSheet.UsedRange
If r.Value = 0 Or r.Value = "" Then
If rKill Is Nothing Then
Set rKill = r
Else
Set rKill = Union(rKill, r)
End If
End If
Next
If rKill Is Nothing Then
Else
rKill.Delete Shift:=xlUp
End If
End Sub
正如pnuts指出的那样,这可能有点慢。 以下内容可能会更快一些:
Sub dural2()
With Cells
.Replace "0", ""
.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End With
End Sub