Como verificar se existe uma planilha usando vba?
Se você deseja criar uma planilha, excluí-la, movê-la ou copiá-la, você precisa saber se esta planilha existe ou não.
Para escrever um código para verificar se a planilha existe ou não, você precisa de um loop que passe por cada planilha da pasta de trabalho e corresponda ao nome fornecido. Mas é o seguinte, você pode usar dois loops diferentes para isso ( For Next e For Each ), e hoje usaremos os dois.
Neste tutorial, veremos diferentes maneiras de fazer isso. Portanto, certifique-se de ter a guia Desenvolvedor na faixa de opções e abra o editor VBA para escrever este código.
Verifique se existe uma planilha na pasta de trabalho atual
Com esse loop, você pode fazer referência a todas as planilhas da pasta de trabalho e percorrê-las uma por uma para combinar o nome da planilha com o nome da planilha que deseja pesquisar.
Siga esses passos:
- Primeiro, declare uma variável para usar na planilha ao executar o loop e para armazenar o nome da planilha que você deseja pesquisar.
- Em seguida, escreva uma linha de código para uma caixa de entrada para inserir o nome da planilha que deseja pesquisar.
- Depois disso, inicie seu loop com a palavra-chave For Each. E use a variável para se referir a cada planilha da pasta de trabalho.
- A partir daqui, você precisa escrever uma instrução IF THEN ELSE para combinar o nome da planilha com o nome inserido na caixa de entrada e, em seguida, exibir uma caixa de mensagem se a correspondência for encontrada e sair do procedimento.
- No final, uma caixa de mensagem para notificá-lo caso nenhuma correspondência seja encontrada.
Links úteis: Executar uma macro – Gravador de macro – Editor Visual Basic – Manual pessoal de macros
Código completo:
Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For Each sht In ThisWorkbook.Worksheets If sht.Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next sht MsgBox "No! " & shtName & "is not there in the workbook." End Sub
Deixe-me explicar como funciona: Ao executar este código, aparecerá uma mensagem onde você deverá inserir o nome da planilha que deseja pesquisar.
Depois disso, ele percorre cada planilha para combinar o nome com o nome que você digitou e, se o nome corresponder a uma planilha, mostra uma mensagem e outra mensagem se não houver correspondência.
Aqui está outro código para verificar se uma planilha existe ou não.
Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String Dim i As Long i = Sheets.Count shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For i = 1 To i If Sheets(i).Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next i MsgBox "No! " & shtName & " is not there in the workbook." End Sub
Este código usa o loop FOR NEXT e usa o número total de planilhas na pasta de trabalho e, com base nisso, percorre cada planilha que corresponde ao nome que você inseriu.
Verifique se a planilha existe na pasta de trabalho fechada
No código a seguir, você tem um loop que procura o nome da planilha em uma pasta de trabalho fechada. Para nos referirmos ao arquivo, usamos o endereço do arquivo.
Sub vba_check_sheet() Dim wb As Workbook Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") Application.ScreenUpdating = False Set wb = Workbooks.Open _ ("C:UsersDellDesktopsample-file.xlsx") For Each sht In wb.Worksheets If sht.Name = shtName Then wb.Close SaveChanges:=True MsgBox "Yes! " & shtName & " is there in the workbook." _ , vbInformation, "Found" Exit Sub End If Next sht Application.ScreenUpdating = False MsgBox "No! " & shtName _ & " is not there in the workbook.", _ vbCritical, "Not Found" End Sub
Ao executar esta macro, ela abre o arquivo na parte de trás quando você desabilita a atualização da tela e, depois de passar por todas as planilhas, você tem o código para habilitar a atualização da tela. ‘tela.
Nota: Como você pode ver, no endereço do local do arquivo temos a extensão do arquivo, o que significa que você precisa ter a extensão de arquivo correta para se referir a ele.