Fin*_*las 2 excel vba excel-vba
我正在尝试使用.CSV文件的导入来更新工作表.我可以阅读并更新所有信息.更新后,我想删除一些数据.必须删除所有D empty为空的行(整行).
为此,我有一个foreach检查D3:D486(是最后一行).运行宏之后,会删除一些行,但不会删除所有行.
Dim rCell As Range
Dim rRng As Range
Debug.Print CStr(LastRow)
Set rRng = Worksheets("sheet1").Range("D3:D" + CStr(LastRow))
For Each rCell In rRng.Cells
If Not IsEmpty(rCell) Then
Debug.Print rCell.Row
Else
Debug.Print "Empty"
Worksheets("sheet1").Rows(rCell.Row).Delete
End If
Next rCell
Run Code Online (Sandbox Code Playgroud)
我想for-each有一个问题.例如,如果他删除第100行,下次他去101行..但那是前一行102 ..我可以将单元格保存在一个数组中,但是然后它会是一样的.除非我走另一条路(从下到上).我怎么解决这个问题?
小智 7
我想你已经回答了自己的问题:从下到上......
你可以尝试range.EntireRow.Delete方法,如下所示
Dim rCell As Range
Dim lastRow, i
lastRow = 1000
For i = lastRow To 1 Step -1
' if condition met
Worksheets("Sheet1").Range("D:" + i).EntireRow.Delete
Next
Run Code Online (Sandbox Code Playgroud)