VBA实践技巧精粹008:如何判断指定工作表是否存在

时间:2022-03-31 10:01:02

问题背景:很多时候想对工作表进行操作,但往往不知道此表是否已经存在,比如想添加一新工作表,并对其进行命名,但如果命名发生冲突,则会引发错误,甚至会导致程序中断.

问题提出:如何判断指定工作表是否存在

解决代码:函数判断是否存在,在过程中调用此函数,并做进一步操作,比如添加新表/删除此表等.

Function ExistSheet(ShtName As String) As Boolean
    Dim sht As Worksheet
    On Error Resume Next
    Set sht = Worksheets(ShtName) '要出错就在这儿出错!
    If Err.Number = 0 Then 'Err.Number=0恰好说明正确,Err对象的默认属性就是Number
        ExistSheet = True
    Else
        MsgBox ShtName & "工作表不存在"
    End If
    Set sht = Nothing '得到正确的结果后,工作表对象就无存在的意义,及时清空.
End Function
Sub 判断指定工作表是否存在()
    If ExistSheet("sheet100") Then
        Debug.Print "xiehui is a man!"
    End If
End Sub
代码反思:能否将这段用在判断指定工作簿是否存在?在进行学生评语导入时,可以先进行这一步工作,检测指定的工作簿是否存在,如果不存在,就将其检出并进行提示.

VBA实践技巧精粹008:如何判断指定工作表是否存在 本文用 菊子曰发布