Vba 复制一个工作簿中的列并粘贴到另一个工作簿中。创建新列

Vba 复制一个工作簿中的列并粘贴到另一个工作簿中。创建新列,vba,excel,Vba,Excel,我需要每月从不同的工作簿中收集数据,然后将其传输到一个主数据工作簿中 MyFile = Dir Range("C2:D18").Copy ActiveWorkbook.Close False erow = Sheet1.Cells(3, 2).End(xlUp).Offset(0, 1).Row ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range(Cells(erow, erow), Cells(erow, erow)) 上面的

我需要每月从不同的工作簿中收集数据,然后将其传输到一个主数据工作簿中

MyFile = Dir
Range("C2:D18").Copy
ActiveWorkbook.Close False

erow = Sheet1.Cells(3, 2).End(xlUp).Offset(0, 1).Row
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range(Cells(erow, erow), Cells(erow, erow))
上面的代码传输我的数据,并将它们正确地放入当月的C列和D列。当我试图在下个月传输数据时,它会替换C和D列中的数据。相反,我希望新数据进入E列和F列,以及G和H列之后的一个月


如何做到这一点?

我建议您看看如何正确使用
Dir()
读取多个文件。关于您的解释,我不确定您是否需要一次阅读多个文件,但看到清晰的示例总是很好的!;)

顺便说一句,请注意,
.Offset(0,1)
erow=…
中是无用的,因为您在末尾使用了
.Row
,并且您的
Offset
只影响单元格的列

如果您的初始代码执行您想要的操作,这应该可以正常工作:

MyFile = Dir
Range("C2:D18").Copy
ActiveWorkbook.Close False

eCol = Sheet1.Cells(3, 2).End(xlUp).End(xlToRight).Offset(0, 1).Column
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Cells(2, eCol)

查看如何使用
for
循环和
offset
函数使用索引和循环,使索引增加2(2列),循环还可以从多个工作簿读取数据您可以
erow
…只需一天