Como posso saber se a planilha a existe em uma pasta de trabalho?

0

Eu tenho o seguinte código que não está funcionando como esperado:

If Sheets("a") <> "" Then MsgBox ("sheet a exists")

Como posso saber se a planilha a existe na pasta de trabalho?

    
por DanM 16.02.2016 / 17:34

4 respostas

2

Eu faria uma função separada para isso:

Function SheetExists(SheetName As String)
    On Error GoTo no:
    WorksheetName = Worksheets(SheetName).Name
    SheetExists = True
    Exit Function
no:
    SheetExists = False
End Function

Depois, você pode chamá-lo quando necessário, mesmo em uma fórmula, se quiser:

Sub ABC()
    If SheetExists("Test") Then
        MsgBox "Yay!"
    Else
        MsgBox "Boo!"
    End If
End Sub

ou

=If(SheetExists("Test"),"Yay!","Boo")
    
por 16.02.2016 / 19:00
1

Você pode verificar o erro. por exemplo:

Dim A As String
    On Error Resume Next
        A = Worksheets("a").Name
        Select Case Err.Number
            Case 9
                MsgBox "Sheet ""a"" does not exist"
            Case 0
                MsgBox "Sheet ""a"" exists"
            Case Else
                Stop
        End Select
    On Error GoTo 0
    
por 16.02.2016 / 18:50
1

Algo como:

Sub DoesSheetExist()
    Dim s As Worksheet

    For Each s In Sheets
        If s.Name = "a" Then
            MsgBox "Sheet a exists"
            Exit Sub
        End If
    Next s
    MsgBox "Sheet a does not exist"
End Sub
    
por 16.02.2016 / 18:13
-1
If (Worksheets("a").Name <> "") Then MsgBox ("sheet A exists")

isso funciona como esperado

    
por 16.02.2016 / 17:43