我在VBA中遇到了麻烦

我正在编写代码来search范围内的每个单元格。 我想查找2个或更less字符的所有值(例如“12”“ab”),然后删除这些单元格。 我有这样的工作,但VBA代码运行非常慢,只能运行1列每次运行。 所以它不会find所有的东西,只要在列A中find它,代码就会结束而不移动到列B.

这是我的代码到目前为止:

Sub test2() Dim i As Integer Dim j As Integer For i = 1 To 524 For j = 1 To 12 If Len(Cells(i, j)) <= 2 Then Cells(i, j).Delete Shift:=xlToLeft End If Next j Next i End Sub 

考虑使用:

 Sub test2() Dim i As Integer Dim j As Integer Application.ScreenUpdating = False For i = 1 To 524 For j = 12 To 1 Step -1 If Len(Cells(i, j)) <= 2 Then Cells(i, j).Delete Shift:=xlToLeft End If Next j Next i Application.ScreenUpdating = True End Sub 

使用范围,所以设置r=range("a1:l524) ,然后for each cell in r ,然后执行相同的操作, if len(r.value)<=2 then cell.delete

定义要检查的范围,并对范围的每个单元执行控制

 Public Sub test2() Dim cell As Range For Each cell In Range("A1:X52") If Len(cell) <= 2 Then cell.Delete Shift:=xlToLeft End If Next End Sub 

它应该做的工作