0

これはかなり単純な作業のようですが、うまくいかないようです。ワークシートのすべてのセルをループする単純なマクロが必要なだけです。セルがゼロ (キックの場合は空白) の場合は、それを削除して、列内の他のセルを 1 つ上に移動します。

ドキュメント全体でそれを実行しようとしてもどこにも行かなかったので、単一の列で実行しようとしました:

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

しかし、明らかにまだどこにも行き着いていません。

4

2 に答える 2

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 に答える