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