Pode haver um momento em que você precise verificar se uma planilha, que você criou ou excluiu em uma pasta de trabalho em uma macro / código VBA, existe. Podemos fazer isso facilmente usando uma função / macro. Existem várias maneiras de verificar se existe uma planilha.
Abordaremos as seguintes maneiras neste artigo:
1. Função definida pelo usuário conhecida como UDF
2. Sub-rotina através da caixa de mensagem
Primeira opção: Função Definida pelo Usuário
O instantâneo a seguir contém alguns nomes de folhas e verificaremos se os nomes da folha na coluna A existem.
Para descobrir se existe uma planilha específica, precisamos seguir as etapas abaixo para iniciar o editor VB
- Clique na guia Desenvolvedor
- No grupo Código, selecione Visual Basic
- Copie o código abaixo no módulo padrão
Option Explicit Function WorksheetExists (ByVal WorksheetName As String) As Boolean Dim Sht As Worksheet Para Cada Sht In ThisWorkbook.Worksheets If Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Then WorksheetExists = True Exit Function End If Next Sht WorksheetExists = Função de Fim Falso
- Para verificar, usaremos UDF na célula B2 como
- = WorksheetExists (A2)
- Na imagem acima, “MasterSheet” não existe em nosso exemplo de pasta de trabalho; portanto, a fórmula deu uma resposta falsa
Explicação do código:
Esta função obtém o valor de “WorksheetName” da macro que executa outras atividades. Se precisar alterá-lo de acordo com seu código, você pode.
Para cada Sht neste livro de trabalho.Folhas de trabalho e Próximo Sht são as partes inicial e final do loop, respectivamente.
Então If Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Then
WorksheetExists = True
Verifica se o nome da planilha corresponde ao nome da planilha passado da macro principal. Em caso afirmativo, WorksheetExists é True e podemos sair da função. Caso contrário, WorksheetExists = False é retornado para a macro principal. O loop vai da 1ª folha para a próxima até que todas as folhas tenham sido verificadas.
Segunda opção: Sub-rotina através da caixa de mensagem
Podemos ter uma sub-rotina normal que está chamando uma UDF e, se a planilha especificada for encontrada, a caixa de mensagem exibirá, 'planilha existente'; se não for encontrado, o msgbox aparecerá, ‘planilha não encontrada’.
Para verificar, copiaremos o seguinte código no módulo padrão:
Função WorksheetExists2 (WorksheetName As String, Opcional wb As Workbook) As Boolean Se wb Is Nothing Then Defina wb = ThisWorkbook Com wb On Error Resume Next WorksheetExists2 = (.Sheets (WorksheetName) .Name = WorksheetName) On Error GoTo 0 End With End Function Sub FindSheet () If WorksheetExists2 ("Sheet1") Then MsgBox "Plan1 está nesta pasta de trabalho" Else MsgBox "Ops: Planilha não existe" End If End Sub
Após executar a macro “FindSheet”, obteremos a seguinte caixa de mensagem se a planilha existir:
Se a planilha não existir, obteremos a seguinte caixa de mensagem:
Da mesma forma, podemos ter um loop IF simples que verifica se a planilha existe e executa certas ações depois disso.
Sub test () Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name "Main" Then ws.Range ("A1"). Value = ws.Name Else ws.Range ("A1"). Value = " PÁGINA DE LOGIN PRINCIPAL "End If Next ws End Sub
- Para testar a macro acima, precisamos criar um nome de planilha “Principal”. Esta macro é muito simples
- Ele percorre cada planilha da pasta de trabalho
- Em seguida, ele verifica se o nome da planilha não é PRINCIPAL
- Se for PRINCIPAL, exibe texto, como “PÁGINA DE LOGIN PRINCIPAL” em A1 dessa planilha, caso contrário, exibe o nome da planilha na célula A1
- Esta é apenas outra forma de verificar se a planilha existe. Se existir, execute a ação A, caso contrário, a ação B
Conclusão: Podemos identificar se existe uma planilha em nossa pasta de trabalho ou não; podemos usar UDF ou sub-rotina conforme nossa conveniência.
Se você gostou de nossos blogs, compartilhe com seus amigos no Facebook. E você também pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar, complementar ou inovar nosso trabalho e torná-lo melhor para você. Escreva-nos no site de e-mail