2017-08-02 142 views
0

我正在嘗試編寫一個循環,將一個工作簿中的數據範圍複製並粘貼到另一個工作簿中。我遇到了錯誤'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

回答

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

下次會縮進。但是我得到一個錯誤,應用程序定義或對象定義的錯誤。在wb.WorkSheets()....複製行 –

+1

我認爲Jnevill已經發布你很好的答案:) – maaajo