作者mitsu (虹儿)
看板Visual_Basic
标题Re: [VBA ]请问当 delete 某一个 worksheet 时,如꘠…
时间Fri Dec 7 00:51:48 2007
※ 引述《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