2014-09-18 123 views
0

我需要根據該行中的值將一行數據複製到另一個工作表。該值爲0並始終位於原始工作表的J列中。我想將列A - N複製到第二張紙上。我發現這個腳本複製整行。問題是我需要保留以前輸入到第二個(目的地)工作表中O-AZ列的任何數據。不幸的是,下面的腳本將整行粘貼到第二個(目的地)表單中,並且在O-AZ列中輸入的任何數據都會丟失。根據單元格中的值將行復制到另一個工作表

Sub MyMacro() 

    Dim i As Long, iMatches As Long 

    Dim aTokens() As String: aTokens = Split("0", ",") 

    For Each Cell In Sheets("AMI").Range("J:J") 

     If Len(Cell.Value) <> 0 Then 

      For i = 0 To UBound(aTokens) 

       If InStr(1, Cell.Value, aTokens(i), vbTextCompare) Then 

        iMatches = (iMatches + 1) 

        Sheets("AMI").Rows(Cell.Row).Copy Sheets("AMI Fallout").Rows(iMatches + 1) 

       End If 

      Next 

     End If 

    Next 

End Sub 
+0

的可能重複[Excel宏,複製並粘貼基於另一個單元格值一個單元格的值?(http://stackoverflow.com/questions/2517471/excel-宏 - 複製 - 粘貼 - 基於單元值的另一個單元值) – 2014-09-19 01:28:16

回答

0

您正在複製與像代碼完整行:

Sub dural() 
    Sheets("Sheet1").Rows(11).Copy Sheets("Sheet2").Rows(17) 
End Sub 

要複製的行的唯一部分,使用類似:

Sub dural2() 
    Set r1 = Intersect(Sheets("Sheet1").Rows(11), Sheets("Sheet1").Columns("A:N")) 
    Set r2 = Intersect(Sheets("Sheet2").Rows(13), Sheets("Sheet2").Columns("A:N")) 
    r1.Copy r2 
End Sub 
+0

謝謝。這很好。我非常感謝這裏願意分享的優秀奇才。 – zipgunpop 2014-09-19 15:24:27

0

要回答你的這個代碼只會將指定行的列A:n複製到AMI輻射工作表。

Sheets("AMI").Cells(Cell.Row, 1).Resize(1, 14).Copy Sheets("AMI Fallout").Cells(iMatches + 1, 1) 

我很擔心你是如何確定行轉移的積極標準的。看起來您正在嘗試使用逗號(不存在)的Split a ,然後遍歷單個值數組並檢查部分匹配的。由InStr產生的部分匹配是最令人不安的。

0

使用這樣的

Sheet1.Rows(cell.row) = sheet2.Rows(Cell.row).Value 
相關問題