看板 Office 關於我們 聯絡資訊
軟體: Excel 版本: 2016 想從A工作簿複製多個工作表,至B工作簿最後面的工作表後方開始貼上 寫了一個迴圈出現錯誤 找了老半天才找到的錯誤如下 錯誤版本 Sheets(i).Copy After:=Workbooks(TargetFileName).Sheets(Sheets.Count) OK版本 Sheets(i).Copy After:=Workbooks(TargetFileName).Sheets(1) OK版本裡的1換成2或3,都是OK的 雖說這樣的工作表排序後面再改回來也行 可是還是想請教 為什麼用 Sheets()裡放 Sheets.Count 會出現錯誤 而改用數字就不會? PS: 錯誤說明為 “執行階段錯誤 '9' 陣列索引超出範圍“ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.146.147 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1517092399.A.D53.html
Iories: 因為Sheets.Count回傳的是A工作簿的Sheets.Count 01/28 09:16
Iories: 要改成Workbooks(TargetFileName).Sheets.Count 01/28 09:17
謝謝你的回應 但還是出現錯誤 我貼code好了 ======================================================================== Sub 備份檔案() '主程式執行的檔名  VbaFileName = "下載yahoo當日行情(上市).xlsm" '欲存進的資料夾路徑 & 檔案名稱   TargetFilePath = "E:\股市資料\存檔區\"  TargetFileName = "存檔01yahoo當日行情個股.xlsx" '開啟欲存進去的檔案  Workbooks.Open Filename:=TargetFilePath & TargetFileName '切回主程式的檔案  Windows(VbaFileName).Activate For i = 2 To 5 Step 1 Windows(VbaFileName).Activate      Sheets(i).Copy After:=Workbooks(TargetFileName).Sheets(Sheets.Count) Next End Sub ========================================================================
soyoso: 測試i大回文,將sheets.count改為workbooks(...).sheets. 01/28 20:13
soyoso: count https://i.imgur.com/kkZA8Wa.jpg 並無出現錯誤 01/28 20:13
喔喔,原來是我沒理解I大的意思 感謝 好像沒有指定完全就容易會出問題 ※ 編輯: Ibrahimovic (36.239.146.147), 01/28/2018 22:35:39