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