我正在使用以下代码删除 Excel 工作表中的行。我使用了两个不同的循环(第一个是 For 循环,第二个是 Do-While 循环)。
当我运行宏时,它只执行第一个循环(for 循环)并且只删除第 4,5 和 6 行并且不执行第二个循环(Do-While 循环)。但是如果我第二次运行它,那么它会执行第二次循环(Do-While)并删除第 9、10、11、12、13 行。
我试图获得在一次宏运行中运行两个循环的分辨率,但无法获得它。请告诉我在一次宏运行中运行两个循环的方法。
Row No A
1
2 Block1
3
4 del1
5 del2
6 del3
7
8 Block2
9 del1
10 del2
11 del3
12 del5
13 del5
使用的代码:
Sub RowDelete()
Dim a
Dim b
Dim strt
Dim endr
strt = getrow("Blobk1")
endr = getrow("Block2")
For a = endr - 2 To strt + 3 Step -1
Worksheets("s1").Cells(a, 1).EntireRow.Delete Shift:=xlUp
Next
b = endr + 2
Do While Worksheets("s1").Cells(b, 1).Value <> ""
Worksheets("s1").Cells(b, 1).EntireRow.Delete Shift:=xlUp
Loop
End Sub
Function Getrow(str)
Dim a
Dim b
For a = 1 To 50
If Worksheets("s1").Cells(a, 1).Value = str Then
b = a
Exit For
End If
Next
getrow = b
End Function