作者Ibrahimovic (伊布)
看板Office
標題[算表] 複製工作表至別的工作簿
時間Sun Jan 28 06:33:16 2018
軟體: 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://webptt.com/m.aspx?n=bbs/Office/M.1517092399.A.D53.html
1F:推 Iories: 因為Sheets.Count回傳的是A工作簿的Sheets.Count 01/28 09:16
2F:→ 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
========================================================================
3F:→ soyoso: 測試i大回文,將sheets.count改為workbooks(...).sheets. 01/28 20:13
喔喔,原來是我沒理解I大的意思
感謝
好像沒有指定完全就容易會出問題
※ 編輯: Ibrahimovic (36.239.146.147), 01/28/2018 22:35:39