2016-04-05 13 views
0

列cのシート上のテキストを検索しようとしていますが、同じ行内に見つかった場合は、列aを選択してコピーして2枚目に貼り付けます。私はこのコード検索後にVBAの特定の列を選択する

Sub Test() 
For Each Cell In Sheets("Asset Capture").Range("C35:C3000") 
If Cell.Value = "MONITOR" Then 
matchRow = Cell.Row 
Rows.Range(matchRow & ":" & matchRow).Select 
Selection.Copy 
Sheets("GRN Status Report").Select 
lastRow = ActiveSheet.UsedRange.Rows.Count 
If lastRow > 1 Then lastRow = lastRow + 1 
ActiveSheet.Range("A" & lastRow).Select 
ActiveSheet.Paste 
Sheets("Asset Capture").Select 
End If 
Next 
End Sub 

を開始しているが、それは全体の行を選択して、私はちょうどA列からデータを選択するようにコードを変更する方法を見つけ出すことはできませんか?

+0

探しホープはあなたのすべては、それがソートましたありがとうございました!!! – jest3r

答えて

0

これを試してみてください:

Sub Test() 
    Dim Cell As Range, rngDest As Range 

    Set rngDest = Sheets("Grn Status Report").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) 
    For Each Cell In Sheets("Asset Capture").Range("C35:C3000") 
     If Cell.Value = "MONITOR" Then 
      Cell.EntireRow.Cells(1).Copy rngDest 
      Set rngDest = rngDest.Offset(1, 0) 
     End If 
    Next 

End Sub 

は、あなたが選択/ Activateを使用する必要はありませんし、あなたがそれを可能な限り回避した場合、あなたのコードはより堅牢になります。

参照:How to avoid using Select in Excel VBA macros

0

は、あなたがこの

Sub Test() 
increment = Worksheets("GRN Status Report").Range("A" & Rows.Count).End(xlUp).Row 
For Each cell In Sheets("Asset Capture").Range("C5:C3000") 
    If cell.Value = "MONITOR" Then 
     matchrow = cell.Row 
     matchcontent = Range("A" & matchrow).Value 
     Worksheets("GRN Status Report").Cells(increment, 1) = matchcontent 
     increment = increment + 1 
    End If 
Next 
End Sub 
関連する問題