簡體   English   中英

我在VBA中遇到了一個循環問題

[英]I'm having trouble with a loop in VBA

我正在編寫代碼來搜索范圍內的每個單元格。 我想找到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

考慮使用:

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

它應該做的工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM