2017-12-18 7 views
0

워크 시트 이름이 확인란에 연결되어 있는지 확인하는 부울 함수가 있습니다. 나는 그것이 사실이지만 그것은 거짓, 부울 값이 나에게 것을 더가있는 경우 있도록 13부울 기능 조임

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

이 내가 원하는 무엇, 그것을 설정되어 있지 않은 오류를 제공하는 경우, 오류를 체크 박스를 중지 코딩을 가지고 있지만 값을 반환하면 함수가 종료됩니다. 이것이 가능한가?

+0

' sheetExists = IsError가 아님 (Evaluate ("Sheet1! A1")) ' – JohnyL

+0

혼란 스럽습니다. 이 코드를 현재 코드로 어떻게 구현해야합니까? –

+2

'Function WorksheetExists (sheetName $) 부울로 : WorksheetExists = 아닌 IsError (평가 (sheetName & "! A1")) : 최종 함수' – JohnyL

답변

2

인수로 전달되는 값을 테스트 할 수 있습니다. SHEETNAME로 전달 된 문자열의 길이가 0 문자

성능에 관심이 있다면
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