[算表] 複製工作表至別的工作簿

看板Office作者 (伊布)時間8年前 (2018/01/28 06:33), 8年前編輯推噓1(103)
留言4則, 2人參與, 8年前最新討論串1/1
軟體: 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

01/28 09:16, 8年前 , 1F
因為Sheets.Count回傳的是A工作簿的Sheets.Count
01/28 09:16, 1F

01/28 09:17, 8年前 , 2F
要改成Workbooks(TargetFileName).Sheets.Count
01/28 09:17, 2F
謝謝你的回應 但還是出現錯誤 我貼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 ========================================================================

01/28 20:13, 8年前 , 3F
測試i大回文,將sheets.count改為workbooks(...).sheets.
01/28 20:13, 3F

01/28 20:13, 8年前 , 4F
並無出現錯誤
01/28 20:13, 4F
喔喔,原來是我沒理解I大的意思 感謝 好像沒有指定完全就容易會出問題 ※ 編輯: Ibrahimovic (36.239.146.147), 01/28/2018 22:35:39
文章代碼(AID): #1QRFulrJ (Office)
文章代碼(AID): #1QRFulrJ (Office)