布尔函数拧紧

问题描述 投票:0回答:2

我有一个布尔函数,检查是否存在与复选框关联的工作表名称。虽然我有编码可以在错误时阻止复选框,但如果为false,则布尔值会给出错误13。

Function WorksheetExists(sheetName As String) As Boolean
    WorksheetExists = Evaluate("ISREF('" & sheetName & "'!A1)")
End Function

我想要做的是设置它,如果sheetName中没有值,函数就会结束。这可能吗?

excel vba excel-vba
2个回答
2
投票

您可以测试作为参数传递的值。如果作为sheetName传递的字符串的长度为0个字符,则下面将函数设置为False(默认值)

Function WorksheetExists(sheetName As String) As Boolean

    If Len(sheetName) = 0 Then Exit Function
    WorksheetExists = Evaluate("ISREF('" & sheetName & "'!A1)")

End Function

0
投票

如果您对性能感兴趣,则运行速度提高约30倍

Function WorksheetExists(sheetName As String) As Boolean
    Dim ws As Worksheet
    On Error GoTo EH
    Set ws = ActiveWorkbook.Worksheets(sheetName)
    WorksheetExists = True
Exit Function
EH:
    WorksheetExists = False
End Function
© www.soinside.com 2019 - 2024. All rights reserved.