0

这似乎应该是一个相当简单的任务,但我似乎无法让它工作 - 我只想要一个简单的宏,它将遍历我工作表中的所有单元格。如果单元格等于零(或空白表示踢球),则只需将其删除,将列中的其他单元格向上移动一个。

我试图在整个文档上做它无处可去,所以我试着在一个列上做:

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

我不想删除任何行,只删除具有 value 的单个单元格0

但显然还是一无所获。

4

2 回答 2

3

选择要删除其中的空白的范围。主页 > 编辑 - 查找和选择、转到特殊、空白、确定、在数组内选择、删除...、向上移动单元格、确定。

要将相同的过程应用于包含0选择范围的单元格,以删除其中0的 s 并开始(即在上面),方法是将它们替换为空:

Home > Editing, Find & Select, 输入0Find what:, 勾选 Match entire cell contents 并确保 Replace with: 为空,Replace All。

于 2013-09-06T01:10:58.303 回答
1

这个小宏将删除空白和零:

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
于 2013-09-06T01:25:28.123 回答