Vba 删除行,直到单元格=";总数;
我想用这个宏删除最后一个空行之后的所有单元格,直到列“E”中的行为“总计” 我已经尝试过了,但在循环线上出现了错误:Vba 删除行,直到单元格=";总数;,vba,excel,row,Vba,Excel,Row,我想用这个宏删除最后一个空行之后的所有单元格,直到列“E”中的行为“总计” 我已经尝试过了,但在循环线上出现了错误: Sub delete() Dim r As Range Dim lastRow As Long Dim c As Range Dim i As Long i = lastRow + 1 With ThisWorkbook.Worksheets("Sheet1") lastR
Sub delete()
Dim r As Range
Dim lastRow As Long
Dim c As Range
Dim i As Long
i = lastRow + 1
With ThisWorkbook.Worksheets("Sheet1")
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
Do
Set r = Range("B" & i)
If Len(r) = 0 Then r.EntireRow.delete
i = i + 1
Loop Until Cells(i, 5).Value = "Total"
End Sub
下面是我的桌子的外观示例:
我将使用以下类似的方法,它将继续通过所有单元格,直到
E&I
=total:
Public Sub Delete()
Dim i As Long
i = 2 'Start from row 2
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Sheet1")
Do Until .Range("E" & i).Value = "Total"
If .Range("B" & i).Value = vbNullString Then
.Rows(i).EntireRow.Delete
Else
i = i + 1 'Only increment if the row hasn't been deleted to prevent skipping rows
End If
Loop
End With
Application.ScreenUpdating = True
End Sub
错误说明了什么?运行时错误“1004”:应用程序定义的错误或对象定义的错误抱歉,我忘记添加一些内容-现在它正在工作,但问题是它将只删除前3行,然后停止工作没有问题。我稍微修改了一下,添加了
application.screenUpdatement=False
,这将产生性能奖励。