我剛剛開始使用Excel的VBA代碼,因此很抱歉,如果這看起來很基本。我想執行以下操作...從符合條件的行中將選定列複製到另一個表格的VBA代碼
檢查名爲「索引」的紙張的J列(J5到J500)是否存在值「Y」。這是我的情況。 然後,我只想複製列C到我只有任何行符合條件的現有工作表和單元格在不同的位置,即如果索引值C3到I3被複制我想將它們粘貼到A5對於我所在活動工作表的G5,請參閱Sheet2。
如果索引表發生變化,我希望自動複製數據,如果可能的話。如果將新數據添加到索引,它如何工作?
經過大量的搜索後,我發現this。從這個問題我稍微改變了代碼,以適應我的要求,這將滿足條件的整個行復制到我運行宏從一個表,但我很難爲如何選擇某些列只。
Sub CopyRowsAcross()
Dim i As Integer
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Index")
Dim ws2 As Worksheet: Set ws2 = ActiveSheet
For i = 2 To ws1.Range("B65536").End(xlUp).Row
If ws1.Cells(i, 2) = "Y" Then ws1.Rows(i).Copy ws2.Rows(ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row + 1)
Next i
End Sub
任何幫助表示讚賞
約翰
編輯:我創建了一個實體模型和其位於https://docs.google.com/file/d/0B0RttRif9NI0TGl0N1BZQWZfaFk/edit?usp=sharing
不需要A和B柱複印的情況 - 要麼是列J - 多數民衆贊成我正在使用檢查的條件。
感謝您的所有幫助。
如果您希望能夠在不首先從目標工作表中清除所有內容的情況下運行此操作,那麼您將需要至少一個**唯一的**值,可用於識別每一行,否則將無法匹配兩張紙之間的行。 – 2013-03-13 21:19:03
感謝您的回覆Tim。考慮一下,當我想更新時,從索引表中擦除數據並重新複製可能會更好,例如,索引內容已更改或添加了新行。我認爲這意味着我需要通過重新運行宏來手動更新。我會好的。我是否仍然需要獨特的參考資料如果我要採取這種方法? – JohnM 2013-03-13 21:58:21