2012-03-07 57 views
-1

我有一張名爲Open Case Report.xlsm的工作簿,紙張名爲RAW_DataFormatted有條件地在一張紙上搜索並將行復制到另一張紙上

我想創建一個宏,它將在列E中搜索RAW_Data中的一組2個名稱,並將整個行復制到Formatted的特定位置,如A1

我在這裏看了一下,發現了幾個相似的代碼,但我似乎無法調整代碼來執行我想要的操作,而沒有發現調試錯誤。

回答

1

您可以使用MATCH方法發現一個值。在此之後,您可以使用RW將數據傳輸到另一個工作表:

Sub FindRowTransferData() 
Dim Rw As Long, myVAL As String 

myVAL = Application.InputBox("Enter search value:", "Search", "John Doe", Type:=2) 
If myVAL = "False" Then Exit Sub 

On Error Resume Next 
Rw = Application.WorksheetFunction.Match(myVAL, Sheets("RAW_Data").Range("E:E"), 0) 
On Error Goto 0 
If Rw = 0 Then 
    MsgBox "The search value '" & myVAL & "' was not found" 
    Exit Sub 
End If 

'MsgBox "The search value '" & myVAL & "' was found on row: " & Rw 

With Sheets("Formatted") 
    .Range("B3").Value = Sheets("RAW_Data").Range("A" & Rw).Value 'name 
    .Range("B4").Value = Sheets("RAW_Data").Range("B" & Rw).Value 'address 
    .Range("C3").Value = Sheets("RAW_Data").Range("C" & Rw).Value 'phone 
    'etc.... 
End With 

End Sub 

基於下面的意見,這些修改建議:

Rw = Application.WorksheetFunction.Match(myVAL, Sheets("RAW_Data").Range("F:F"), 0) 
On Error Goto 0 
If Rw = 0 Then 
    MsgBox "The search value '" & myVAL & "' was not found" 
    Exit Sub 
End If 

'MsgBox "The search value '" & myVAL & "' was found on row: " & Rw 

Sheets("RAW_Data").Rows(Rw).Copy Sheets("Formatted").Range("A" & Rows.Count).End(xlUp).Offset(1) 
+0

這是接近我想要什麼,但我需要的東西有點不同。 這些名字在列F中,這是我想要搜索的唯一東西。 我試圖找到一種方法來自動地複製2個名稱,從1張到另一張沒有任何對話,並獲取與它的標準複製整個行。 – user1253623 2012-03-08 20:41:08

+1

上面添加了一些建議的修改...最終,您將必須成爲找出所需內容的確切語法的人,我只是想讓您進入大局並激發您的靈感。 ;) – 2012-03-09 04:58:52

相關問題