2017-04-11 74 views
-4

我現在嘗試此代碼,並在目標中給我一個錯誤。我不知道我做錯了什麼。我嘗試了幾次,現在是一個完全不同的東西。從工作表中找到一個值並將工作表1中的行復制到工作表2

子Find_First()

Dim FindString As String 
    Dim Rng As Range 
    Dim RowCnt As Long 

    FindString = Sheets("sheet1").Range("F5").Value 

    If Trim(FindString) <> "" Then 
     With Sheets("sheet2").Range("A:A") 
      Set Rng = .Find(What:=FindString, _ 
          After:=.Cells(.Cells.Count), _ 
          LookIn:=xlValues, _ 
          LookAt:=xlWhole, _ 
          SearchOrder:=xlByRows, _ 
          SearchDirection:=xlNext, _ 
          MatchCase:=False) 
      If Not Rng Is Nothing Then 

      RowCnt = Rng.Row 

      Worksheets("sheet1").Range("p13:af13").Copy Destination:=Worksheets("sheet2").Range(Cells(RowCnt, 1)) 




       Application.Goto Rng, True 
      Else 
       MsgBox "Nothing found" 
      End If 
     End With 
    End If 
End Sub 
+0

我們如何幫助您? – Variatus

+0

我需要一個宏,它將搜索sheet1中的單元格f5中的值,並在sheet2中的列A中進行搜索。如果找到該值。 o想要將sheet1(P13:AF13)中的單元格範圍複製到表單2中找到該值的行中 –

+0

您嘗試過什麼?你的代碼的哪部分不能按照你的預期工作? – YowE3K

回答

0

比方說,你要搜索在Sheet1的A列中的字符「X」,如果找到,複製,行粘貼到Sheet2,然後運行下面的腳本。

Sub LastRowInOneColumn() 
    Dim LastRow As Long 
    Dim i As Long, j As Long 

    'Find the last used row in a Column: column A in this example 
    With Worksheets("Sheet1") 
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 

    'MsgBox (LastRow) 
    'first row number where you need to paste values in Sheet1' 
    With Worksheets("Sheet2") 
     j = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
    End With 

    For i = 1 To LastRow 
     With Worksheets("Sheet1") 
      If .Cells(i, 1).Value = "X" Then 
       .Rows(i).Copy Destination:=Worksheets("Sheet2").Range("A" & j) 
       j = j + 1 
      End If 
     End With 
    Next i 
End Sub 

這就是你想要的嗎?

相關問題