-1

次のマクロ Excel の結果を得るために、どの VB コードを使用できるか教えてもらえますか?

列Bが空白の場合、列Aのコンテンツを削除したい。これは私がどこまで来たかです:

If Range ("B66")= IsEmpty Then 
Range ("A66").Select 
Selection.ClearContents 
End If
4

1 に答える 1

1
Sub Main()
Application.ScreenUpdating = False
    Dim i As Long, r As Range
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        Set r = Range("A" & i)
        If IsEmpty(r.Offset(0, 1)) Then r.EntireRow.Delete shift:=xlUp
    Next i
Application.ScreenUpdating = True
End Sub

最初に、列 A のすべてのセルを循環するループが必要です

For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1列 A の最後のセルから最初のセルまで反復するループを設定します

Range("A" & Rows.Count).End(xlUp).Row列 A で使用された最後のセルを検索します

Set r = Range("A" & i)r 変数を Range オブジェクトに設定します

If IsEmpty(r.Offset(0, 1)) Thenオフセットは同じ行の列 B のセルを指しているため、列 A の隣接セル (cell(sameRow, column B) である) が空の場合

r.EntireRow.Delete shift:=xlUp行全体を削除

Application.ScreenUpdating = False/Trueループを使用するときは、画面の更新をオフにして実行を高速化します

于 2013-10-11T09:55:13.470 に答える