Re: [VBA ]請問當 delete 某一個 worksheet 時,如꘠…

看板Visual_Basic作者 (虹兒)時間16年前 (2007/12/07 00:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《mitsu (虹兒)》之銘言: : 想請教各路 VBA 的高手與先進 : 當要刪除某個工作表時,若此工作表不存在,這時程式就出現問題了,請問應如何防呆 : 例如: : Worksheets("SheetX").Delete '刪除名為 SheetX 的工作表 : 但若 SheetX 不存在,程式就會出現錯誤而停止 : 小弟的想法是寫一個 if 判斷式如下 : If (未知的程式碼) then : Worksheets("SheetX").Delete : End if : 不知道(未知的程式碼)應該如何寫,有查過worksheet的方法, : 好像沒有可以判斷工作表是否存在的方法 : 請各位先進不吝指教,感恩 感謝cole945桑的指教, 不過小弟試過您提供的方法還是錯誤, 整個程式碼: If not Worksheet("SheetX") is nothing then Worksheets("SheetX").Delete End If 仍是因為 SheetX 不存在而發生錯誤 小弟另外想了一個辦法,就是使用for迴圈搜尋工作簿內的每一個sheet 若有名為我們想要殺掉的工作表(如"SheetX"),就殺掉它 提出來希望各位先進不吝賜教,獻醜了 程式碼: Dim objSheetCheck As Object For Each objSheetCheck In Sheets Select Case objSheetCheck.Name Case "SheetX" Worksheets("SheetX").Delete '殺掉工作簿內名為SheetX的工作表 Case "SheetY" Worksheets("SheetY").Delete '以此類推殺掉不要的工作表 Case "SheetZ" Worksheets("SheetZ").Delete End Select Next objSheetCheck 這樣就可以達到殺工作表時防呆的目的了... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.89.33
文章代碼(AID): #17M2Yd02 (Visual_Basic)