**您好。我正在研究一個項目,我需要一些幫助。我不熟悉VBA,所以你的幫助將非常有幫助。在其他工作表上查找值並複製整行
這是我想做什麼:
在Sheet2上,在單元格A1我寫了一些值,當我點擊按鈕,它必須開始在Sheet1中的列d尋找這個值比,如果它會找到這個值,它會複製sheet2上第三行的整行(s)
我發現這個代碼,它工作正常,但我需要爲我編輯它。
在此先感謝。
Sub SearchForString()
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
On Error GoTo Err_Execute
'Start search in row 4
LSearchRow = 4
'Start copying data to row 2 in Sheet2 (row counter variable)
LCopyToRow = 2
While Len(Range("A" & CStr(LSearchRow)).Value) > 0
'If value in column E = "Mail Box", copy entire row to Sheet2
If Range("E" & CStr(LSearchRow)).Value = "D1" Then
'Select row in Sheet1 to copy
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
'Paste row into Sheet2 in next row
Sheets("Sheet2").Select
Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
ActiveSheet.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to Sheet1 to continue searching
Sheets("Sheet1").Select
End If
LSearchRow = LSearchRow + 1
Wend
'Position on cell A3
Application.CutCopyMode = False
Range("A3").Select
MsgBox "All matching data has been copied."
Exit Sub
Err_Execute:
MsgBox "An error occurred."
End Sub
爲什麼循環?爲什麼不使用自動過濾器並一次性複製?看到這[LINK](http://stackoverflow.com/questions/17480975/storing-a-worksheet-in-an-array-and-working-on-them)刪除過濾行。而不是刪除它只是複製它? –