【问题标题】:Copy and Paste across Folders in a loop with VBA使用 VBA 在循环中跨文件夹复制和粘贴
【发布时间】:2017-08-02 17:19:52
【问题描述】:

我正在尝试编写一个循环,将一系列数据从一个工作簿复制并粘贴到另一个工作簿。我遇到错误'Select Sheet method not proper' 或任何错误消息。这是我目前所拥有的:

folderpath="insert folder path here"
Filename = Dir(folderPath)
Do While Filename <> ""

Set wb = Workbooks.Open(folderPath & Filename)

wb.Worksheets("Outcomes & Factors Rankings").Select
Range("A3", Range("A3").End(xlDown).Offset(0, 6)).Copy
ThisWorkbook.Worksheets("OutcomeFactorRankings").Select
Range("A1").End(xlDown).Offset(1, 0).Select.Paste

wb.Close

Loop

【问题讨论】:

  • 不要选择工作表只是为了从中复制。而不是四行,只需:wb.Worksheets("Outcomes &amp; Factors Rankings").Range("A3", Range("A3").End(xlDown).Offset(0, 6)).Copy Destination:= ThisWorkbook.Worksheets("OutcomeFactorRankings").Select Range("A1").End(xlDown).Offset(1, 0)
  • 现在错误是:“无法获取选择工作表属性。”以前从未经历过。
  • 抱歉。我在那里留下了一个错误的 SELECT:wb.Worksheets("Outcomes &amp; Factors Rankings").Range("A3", Range("A3").End(xlDown).Offset(0, 6)).Copy Destination:= ThisWorkbook.Worksheets("OutcomeFactorRankings").Range("A1").End(xlDown).Offset(1, 0)
  • 现在是应用程序定义或对象定义错误。顺便谢谢你
  • 这是有道理的。因此,Range("A3").End(xlDown)... 位需要限定到该范围应该存在于哪个工作簿/工作表中。所以语句增长:wb.Worksheets("Outcomes &amp; Factors Rankings").Range("A3", wb.Worksheets("Outcomes &amp; Factors Rankings").Range("A3").End(xlDown).Offset(0, 6)).Copy Destination:= ThisWorkbook.Worksheets("OutcomeFactorRankings").Range("A1")‌​.End(xlDown).Offset(‌​1, 0) 这很长,但它应该可以解决问题。您还可以将其拆分为两行代码,如下面的 1 个答案(与我之前的评论存在相同的问题)。

标签: excel copy-paste worksheet-function vba


【解决方案1】:

尝试缩进你的代码,你不需要代码中的所有选择,简化,类似的东西应该可以解决你的问题:

folderPath = "insert folder path here"
    Filename = Dir(folderPath)

    Do While Filename <> ""
        Set wb = Workbooks.Open(folderPath & Filename)
        wb.Worksheets("Outcomes & Factors Rankings").Range("A3", Range("A3").End(xlDown).Offset(0, 6)).Copy
        ThisWorkbook.Worksheets("OutcomeFactorRankings").Range("A1").End(xlDown).Offset(1, 0).Paste
        wb.Close
    Loop

【讨论】:

  • 下次会缩进。但我得到一个错误,应用程序定义或对象定义错误。在 wb.WorkSheets()....复制行
猜你喜欢
  • 2015-12-02
  • 1970-01-01
  • 2019-05-20
  • 2019-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多