【发布时间】: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 & 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 & 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 & Factors Rankings").Range("A3", wb.Worksheets("Outcomes & 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