作者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/cn.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