我有一個巨大的名單,我需要進行這項工作,可能有超過15萬行進行工作 的數據可能是這樣宏通配符搜索和複製整行到Sheet2
alimentdsk 2 2 2
aaaa 2 2 2
aaaa 2 2 2
asd 1 1 1
fal 1 1 1
d aliment t 1 1 1
現在我需要的所有將包含準備的行復制到另一個工作表。
我一直在嘗試這種代碼,但它會將所有行
Private Sub Workbook_Open()
Dim rngCell As Range
Dim objMyUniqueArray As Object
Dim lngMyArrayCounter As Long
Dim lngMyRow As Long
Dim varMyItem As Variant
Application.ScreenUpdating = False
Set objMyUniqueArray = CreateObject("Scripting.Dictionary")
For Each rngCell In Sheets("Sheet1").Range("A1:A" & Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row)
If InStr(rngCell, "aliment") > 0 Then
If Not objMyUniqueArray.Exists(Trim(Cells(rngCell.Row, "C"))) Then
lngMyArrayCounter = lngMyArrayCounter + 1
objMyUniqueArray.Add (Trim(Cells(rngCell.Row, "C"))), lngMyArrayCounter
varMyItem = Sheets("Sheet1").Cells(rngCell.Row, "C")
For lngMyRow = 1 To Sheets("Sheet1").Cells(Rows.Count, "C").End(xlUp).Row
If Sheets("Sheet1").Cells(lngMyRow, "C") = varMyItem Then
Rows(lngMyRow).Copy Destination:=Sheets("Sheet2").Range("A" & Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1)
End If
Next lngMyRow
End If
End If
Next rngCell
Set objMyUniqueArray = Nothing
Application.ScreenUpdating = False
MsgBox "All applicable rows have been copied.", vbInformation
End Sub
任何幫助,將apriciated :)
請說清楚你到底想幹什麼?只需複製'A'列中的單元格包含'aliment'的所有行?或者你對列「C」有一些額外的要求(我從你的代碼中看到過)?如果是,他們是什麼?順便說一句,你使用的是什麼版本的Excel? –