我有一个布尔函数,检查是否存在与复选框关联的工作表名称。虽然我有编码可以在错误时阻止复选框,但如果为false,则布尔值会给出错误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
如果您对性能感兴趣,则运行速度提高约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