Determine se existe uma planilha em uma pasta de trabalho usando VBA no Microsoft Excel

Anonim

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