-2

Excel シートの空の行をすべて削除する Excel マクロがあります。このマクロは完了するまでに時間がかかりすぎます。ファイルは自動的に生成され、すべてのファイルでこのマクロを実行する必要があります。マクロは、値を確認した後、一度に 1 行ずつ削除します。

私はこのようなものが必要です:

If  rowValue = "" then
    deleteThisRow And deleteAll Subsequent rows at once
End If

これは私が今使っているコードです:

Sub RemoveRows()
    Range("A8").Select 
    Dim checkval 
    Dim RowAmount
    RowAmount = 93

    Do
        checkval = ActiveCell.Value
        If (checkval = "") Then
            ActiveCell.EntireRow.Delete
        Else
            ActiveCell.Offset(1, 0).Select
        End If
        RowAmount = RowAmount - 1
    Loop While RowAmount > 0
End Sub
4

2 に答える 2

0

したがって、基本的に、空白行に遭遇した場合、その行とその下のすべての行を削除する必要があります。

下のすべての行を削除するには、基本的に、CTRL キーと下矢印キーを押したときに発生するのと同じことを行うことができます。 be) または最後まで (行 65536 は、私が遭遇したすべての Excel バージョンの制限です)。どちらが...

Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp

これは、選択した行 (削除する必要はありません) から次の値または末尾まで移動し、それらの行をすべて削除します。

編集 - マクロ全体:

Dim i As Integer
For i = 1 To 93
    Range("A" & i).Select
    Dim CheckVal As String
    CheckVal = ActiveCell.Value
    If (CheckVal = "") Then
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Delete Shift:=xlUp
    End If
Next i

ただし、見つかった最初の「空白」よりも下に値がある場合、それらも最初の連続した値として削除されることに注意してください。

于 2013-04-10T08:24:36.597 に答える