如果B列为空,则删除A列

时间:2013-10-11 08:29:07

标签: vb.net excel

有人可以告诉我我可以使用哪些VB代码,获取以下宏excel结果吗?

如果列B为空,我希望删除A列中的内容。这就是我走了多远:

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

1 个答案:

答案 0 :(得分: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的相邻单元格(单元格(sameRow,B列)为空,则

r.EntireRow.Delete shift:=xlUp删除整行

Application.ScreenUpdating = False/True关闭屏幕更新以加快使用循环时的执行