将多个工作表上的多个非连续列中的数据复制到一个工作表

时间:2017-10-31 17:55:59

标签: excel vba excel-vba

以下是我目前在excel-VBA中的代码。我需要将多个工作表上的多个非连续列的值复制并粘贴到另一个工作表上的单个列中。我正在为老年应付账款创建一份报告(不重要)。我有5个数据源或5个选项卡,其中包含需要组合的原始数据。例如:Sheet1到Sheet5包含发票金额,国家/地区和发票日期的列。它们在每张纸上都是完全不同的列。我需要将所有相似的数据移动到单独的工作表上的同一列中。下面的代码是一些基本级别的复制和粘贴语句。

有没有办法在单个语句中执行以下操作?如何在每个源的数据末尾添加宏粘贴?例如:如果sheet1上的列A有300行要复制并粘贴,如何从行301开始粘贴下一组数据?从我的来源来看,这个范围是随机的,本月我可以使用数千行数据,下个月可以使用数百行。

Sheets("RAW - Greenphire").Columns("Q").Copy
Sheets("RAW - Concatenated").Columns("A").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("O").Copy
Sheets("RAW - Concatenated").Columns("B").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("H").Copy
Sheets("RAW - Concatenated").Columns("C").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("J").Copy
Sheets("RAW - Concatenated").Columns("D").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("E").Copy
Sheets("RAW - Concatenated").Columns("E").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("A").Copy
Sheets("RAW - Concatenated").Columns("F").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("L").Copy
Sheets("RAW - Concatenated").Columns("G").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("K").Copy
Sheets("RAW - Concatenated").Columns("H").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("V").Copy
Sheets("RAW - Concatenated").Columns("I").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("W").Copy
Sheets("RAW - Concatenated").Columns("J").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("X").Copy
Sheets("RAW - Concatenated").Columns("K").PasteSpecial xlPasteValues

Sheets("RAW - Greenphire").Columns("Y").Copy
Sheets("RAW - Concatenated").Columns("L").PasteSpecial xlPasteValues

1 个答案:

答案 0 :(得分:0)

你可以使用

Worksheets("Sheet1").Range("A1:D4").Copy _ 
destination:=Worksheets("Sheet2").Range("E5")

您可以使用VBA计算目标范围