使用VBA循环复制和粘贴文件夹

问题描述:

我正在尝试编写一个循环,将一个工作簿中的数据范围复制并粘贴到另一个工作簿中。我遇到了错误'Select Sheet method not proper'或任何错误消息。这是我到目前为止有:使用VBA循环复制和粘贴文件夹

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 
+0

唐不要选择工作表只是为了复制它。范围(“A3”,范围(“A3”)。结束(xlDown).Offset(0,6))。复制目的地:=“wb.Worksheets(”结果和因素排名“ ThisWorkbook.Worksheets(“OutcomeFactorRankings”)。选择 范围(“A1”)。结束(xlDown).Offset(1,0)' – JNevill

+0

现在错误是:“无法获取选择工作表属性。”之前从未体验过。 –

+0

道歉。我留下了一个错误的SELECT:'wb.Worksheets(“成果和因素排名”)。范围(“A3”,范围(“A3”)。结束(xlDown).Offset(0,6))。复制目的地: =“ThisWorkbook.Worksheets”(“OutcomeFactorRankings”)。Range(“A1”)。End(xlDown).Offset(1,0)' – JNevill

尝试缩进你的代码,你并不需要所有这些选择在你的代码,简化,这样的事情应该解决您的问题:

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 
+0

下次会缩进。但是我得到一个错误,应用程序定义或对象定义的错误。在wb.WorkSheets()....复制行 –

+1

我认为Jnevill已经发布你很好的答案:) – maaajo