Excel VBA排序更有效

时间:2017-11-27 21:21:22

标签: excel vba excel-vba sorting

我目前有一个排序脚本,它将逐行检查某个字符串。如果字符串匹配,则该行将被复制到该工作表,该行将被删除。但是,有时我需要排序成千上万行,这可能需要很长时间或者会导致Excel崩溃。有没有办法重写它以便能够更有效地排序?

在我的代码中,我使用不同的工作表名称多次复制了 With ws2

Dim ws1 As Worksheet, ws2 As Worksheet
Dim firstRowWs1 As Long
Dim lastRowWs1 As Long
Dim lastRowWs2 As Long
Dim searchColumnWs1 As Integer
Dim i As Integer
Dim check As Variant
Dim strSearch As Variant
Dim foundMatches As Boolean
Dim sDate As String
sDate = Format(Now(), "mm/dd/yyyy")
Set ws1 = Worksheets("Sort")
Set ws3 = Worksheets("Overview")


Set ws2 = Worksheets("sheet2")
With ws2
lastRowWs1 = ws1.UsedRange.Rows.Count
lastRowWs2 = ws2.UsedRange.Rows.Count
firstRowWs1 = 1
searchColumnWs1 = 10
strSearch = Array("john")

For i = firstRowWs1 To lastRowWs1
    For Each check In strSearch
        If check = ws1.Cells(i, searchColumnWs1).Value Then
            ws1.Rows(i).Copy (ws2.Rows(lastRowWs2 + 1))
            ws2.Rows(lastRowWs2 + 1).Columns("A:B").Insert xlToRight
            lastRowWs2 = lastRowWs2 + 1
            ws1.Rows(i).Delete shift:=xlUp
            i = i - 1
            Exit For
        End If
    Next check
Next i
End With

0 个答案:

没有答案