Re: [VBA ]請問當 delete 某一個 worksheet 時,如꘠…
※ 引述《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