我正在编写代码来搜索范围内的每个单元格。我想找到2个或更少字符的所有值(例如“12”“ab”)然后删除那些单元格。我有点工作,但VBA代码运行速度非常慢,每次运行仅适用于1列。因此它不会找到所有内容,只需在A列中找到它,然后代码将结束而不会移动到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
答案 0 :(得分:2)
考虑使用:
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
答案 1 :(得分:0)
使用范围,因此请设置r=range("a1:l524)
,然后使用for each cell in r
,然后执行相同操作,if len(r.value)<=2 then cell.delete
答案 2 :(得分:-1)
定义要检查的范围并执行范围
的每个单元格的控件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
它应该做的工作