如何用vba判断任意工作簿中是否存在指定名称的工作表?

在vba中经常要访问工作表,访问工作表一般使用如下的代码

Set oWK = oWB.Worksheets(sWkName)

但是当指定名称的工作表不存在时,以上代码将返回错误。

由于此类需求经常遇到,为此写了个自定义函数,用于判断任意工作簿中是否存在指定名称的工作表,代码如下:

Function WorkSheetExists(oWB As Workbook, ByVal sWkName As String) As Boolean
    '判断指定名称的工作表是否存在
    'QQ1722187970
    'oWB为具体的工作簿,sWkName为工作表的名称,结果返回True表示存在
    On Error Resume Next
    Dim oWK As Worksheet
    Set oWK = oWB.Worksheets(sWkName)
    '如果出错表示不存在指定名称的工作表
    If Err.Number <> 0 Then
        WorkSheetExists = False
    Else
        WorkSheetExists = True
    End If
    Err.Clear
End Function

 

       

发表评论