【问题标题】:Copy column in one workbook and paste into another. Creating new column复制一个工作簿中的列并粘贴到另一个工作簿中。创建新列
【发布时间】:2015-12-15 11:26:29
【问题描述】:

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

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 列。

这是怎么做到的?

【问题讨论】:

  • 看看使用for循环和offset函数
  • 使用索引和循环,使您的索引增加 2(2 列)并且循环还从多个工作簿中读取您的数据
  • 你可能是erow...只是一天

标签: vba excel


【解决方案1】:

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

顺便说一句,请注意erow = ... 中的.Offset(0, 1) 是无用的,因为您在末尾使用.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)

【讨论】:

    猜你喜欢
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多