Vba 布尔函数紧

Vba 布尔函数紧,vba,excel,Vba,Excel,我有一个布尔函数,用于检查是否存在与复选框关联的工作表名称。虽然我有代码可以阻止复选框出错,但如果它为真,则布尔值会给我一个错误13 Function WorksheetExists(sheetName As String) As Boolean WorksheetExists = Evaluate("ISREF('" & sheetName & "'!A1)") End Function 我想做的是设置它,这样如果sheetName中没有值,函数就结束了。这可能吗?您

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

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

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

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

Function WorksheetExists(sheetName As String) As Boolean

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

End Function

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

Function WorksheetExists(sheetName As String) As Boolean

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

End Function

如果您对性能感兴趣,它的运行速度将提高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

如果您对性能感兴趣,它的运行速度将提高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

sheetExists=notiserror(评估(“Sheet1!A1”)
我很困惑。如何用当前代码实现此代码?
Function WorksheetExists(sheetName$)作为布尔值:WorksheetExists=Not-IsError(Evaluate(sheetName&“!A1”):End Function
sheetExists=Not-IsError(Evaluate(“Sheet1!A1”))
我很困惑。如何使用当前代码实现此代码?
Function WorksheetExists(sheetName$)作为布尔值:WorksheetExists=Not-IsError(Evaluate(sheetName&“!A1”):End Function