作者ptguitar (佩蒂吉他)
看板Office
标题[算表] 汇进档案密码输入错误跳过问题
时间Mon Jun 12 09:49:59 2017
软体:excel
版本:2007
我之前有问过一个vba
就是把下列档案依照档名取工作表复制进来
档案例如:
001.xlsx
002.xlsx
003.xlsx
004.xlsx
其中假设002有密码保护
若是002 输入密码错误
我想跳过002继续执行
用on error resume next
会变成
後面的003资料会成为002的工作表
若是下面的写法则会失败
不知道该怎麽修改
002密码输入错误後就跳掉
程式继续执行下一个003的处理
而且都会正确改为003的工作表
程式码如下:
===========
cname = "try.xlsx"
Workbooks.Add 1
ActiveWorkbook.SaveAs "D:\" & cname
wb.Sheets("汇总").Copy after:=Workbooks(cname).Sheets(1)
Do While openfile <> ""
right:
sfname = Left(openfile, InStrRev(openfile, ".") - 1)
Workbooks.Open filepath & openfile
On Error GoTo wrong
ActiveSheet.Name = sfname
Sheets(sfname).Copy before:=Workbooks(cname).Sheets("汇总")
Workbooks(openfile).Close 0
openfile = Dir
Loop
wrong:
MsgBox "档案密码错误"
GoTo right
Calculate
Workbooks(cname).Close 1
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.67.77
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1497232201.A.64A.html
1F:→ soyoso: on error resume next,set workbooks.open至变数 06/12 10:06
2F:→ soyoso: 变数is nothing时为真时msgbox,为假执行其他动作 06/12 10:07
档案跟范例档案在这
https://drive.google.com/open?id=0BwCgrQhGgaw7Zm1JaTU0RW5WbU0
我改过但是还是会失败
不知道程式码有哪边想错了 感觉是顺序问题?
※ 编辑: ptguitar (60.250.67.77), 06/12/2017 10:50:49
3F:→ soyoso: ttbook於判断後set为nothing,其他如worksheet.name、 06/12 11:10
4F:→ soyoso: worksheet.copy或workbook.close再看看是否调整至else内 06/12 11:11