VBA中经常会有一个这样的需求,在执行运算之前需要先判断指定工作表名称是否存在,否则程序将会报“下标越界”的错误,给用户不好的体验
我所知晓的查询工作表名称通常有3种方法:
一、遍历所有工作表,如果工作表的名称等于指定名称,则反馈存在
for each ws in worksheets
if ws.name = "指定名称" then
msgbox "存在"
exit for
else
msgbox "不存在"
end if
next ws
二、利用“下表越界”错误来判断
Function SheetIsExist(strExcleName As String, strSheetName As String) As Boolean
'//判断名称的工作表是否已经在指定的Excel文件中存在
Dim shtSheet As Worksheet
SheetIsExist = False
On Error GoTo lab1
Set shtSheet = Workbooks(strExcleName).Sheets(strSheetName)
If shtSheet Is Nothing Then
SheetIsExist = False
Else
SheetIsExist = True
End If
Set shtSheet = Nothing
Exit Function
lab1:
SheetIsExist = False
End Function
在学习过程中记录一下,以备查阅
