我有一個稱爲master(工作表2)的工作簿。 這包含數據線,像這樣:VBA循環遍歷每行並將相關數據複製到另一個工作簿
Week Company item No Weight
2 A 1222 100g
2 A 1234 100g
2 A 2222 100g
2 B 1111 100g
2 C 555 100g
我有一個名爲template.xlsx
我想通過我的主簿各環線模板文件。 將該公司複製到模板上的單元格C12中。 模板上的單元格A27的項目編號。 模板上單元格B27的權重。
這很簡單,並顯示在上圖中。
但是,如果公司A出現3次,那麼每個項目號和權重都需要複製到模板中 - 需要插入新行。
結果應該如下:
基本上我需要遍歷每行中我的主人的工作簿,表2,和每個相關列複製到我的模板工作簿相應的單元格。它需要做到這一點,但也可以將同一家公司分組到一個模板中,並根據需要將所有項目號列入新行(如公司A示例)。
這是我的代碼到目前爲止,很基本,但我是全新的vba,所以任何幫助將非常感激。
Sub foo2()
Dim x As Workbook
Dim y As Workbook
'## Open both workbooks first:
Set x = ThisWorkbook
Set y = Workbooks("template.xlsx")
'Now, transfer values from x to y:
y.Sheets(1).Range("C12").Value = x.Sheets(2).Range("B2")
y.Sheets(1).Range("A27").Value = x.Sheets(2).Range("C2")
y.SaveAs ("C:\templates\" & Range("B2").Value & ".xlsx")
'Close x:
x.Close
End Sub
http://www.excelfunctions.net/VBA-Loops.html – cyboashu
你不必一定是插入新行。可以在同一單元格內的不同行上使用不同的數據項:'ActiveCell.FormulaR1C1 =「ABC = 123」&Chr(10)&「CVF = 678」&Chr(10)&「gbh = 098」' 。當你去檢索它們時,你可以使用分割函數和Chr(10) –
的分隔符我建議你學習一下循環和數組。在這種情況下,這會讓你的生活更輕鬆。您需要使用循環來搜索所有數據以查找項目發生的次數,然後使用數組來存儲這些出現的值。您可能也有興趣使用字典來查找每個公司的事件(如果您正在爲所有公司創建輸出)。另外,我只注意到你正在返回工作簿x的範圍。請務必在兩條轉移線的末端放置「.Value」。 –