有人可以告诉我我可以使用哪些VB代码,获取以下宏excel结果吗?
如果列B为空,我希望删除A列中的内容。这就是我走了多远:
If Range ("B66")= IsEmpty Then
Range ("A66").Select
Selection.ClearContents
End If
答案 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
关闭屏幕更新以加快使用循环时的执行