任何人都可以找出为什么这个VBA脚本的整数停止增加?
我正在处理下面的代码:
Sub RemoveNumber() Dim Rng As Range Dim i As Long i = 1 Application.ScreenUpdating = True While i <= 20000 Set Rng = Range("A" & i) If IsNumeric(Rng.Value) = True Then Rng.Delete Shift:=xlUp ElseIf IsNumeric(Rng.Value) = False Then i = i + 1 Else i = i + 1 End If Wend End Sub
本质上,它循环通过一列,并删除数字单元格。 这很好,但循环不会结束。 通过插入Range("B2").value = i
进一步testing。value Range("B2").value = i
显示当我达到18450(列中第一个空单元格)时,我停止增加。 但是,肯定和空的单元格应该触发最后的Else
语句,对吗?
您的代码将错过行。 当它删除rng时,下一个移动到下一行。 如果有背对背的号码值,它会跳过每隔一个。
避免这一切的一个好办法是向后循环:
Sub RemoveNumber() Dim Rng As Range Dim i As Long i = 1 Application.ScreenUpdating = True For i = 20000 To 1 Step -1 Set Rng = Range("A" & i) If IsNumeric(Rng.Value) And Len(Rng.Value) > 0 Then Rng.Delete Shift:=xlUp End If Next i End Sub