我在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
它应该做的工作