Este tutorial cobrirá a interação com nomes de planilhas no VBA.
Obter nome da folha
Os nomes das folhas são armazenados no Nome propriedade do Lençóis ou Fichas de trabalho objeto. O nome da planilha é o nome da “guia” que fica visível na parte inferior do Excel:
Obter nome do ActiveSheet
Isso exibirá o nome do ActiveSheet em uma caixa de mensagem:
1 | MsgBox ActiveSheet.Name |
Obter o nome da folha por número de índice
Isso exibirá o primeiro nome da planilha em uma caixa de mensagem:
1 | Folhas MsgBox (1) .Nome |
Isso exibirá o nome da última planilha na pasta de trabalho:
1 | Folhas MsgBox (Sheets.Count) .Name |
Obter o nome da folha por codinome
No Editor VBA, há uma opção para alterar o “nome do código” de uma planilha. O nome do código não é visível para o usuário do Excel e só pode ser visto no Editor VBA:
No VBA, ao trabalhar com o Planilhas, você pode fazer referência ao nome usual da guia:
1 | Planilhas ("TabName"). Ativar |
ou o nome de código VBA:
1 | CodeName.Activate |
Fazer referência ao nome do código é desejável no caso de o nome da guia Planilha mudar. Se você permitir o acesso do usuário do Excel para alterar os nomes das planilhas, deve fazer referência ao nome do código em seu código VBA para que uma incompatibilidade do nome da guia da planilha não cause um erro. Os nomes dos códigos das folhas são discutidos com mais detalhes aqui.
Para obter o nome da planilha usando o nome do código VBA, faça o seguinte:
1 | MsgBox CodeName.Name |
Renomear folha
Você pode renomear o Planilhas ajustando o nome propriedade do Lençóis ou Fichas de trabalho objeto.
Renomear ActiveSheet
1 | ActiveSheet.Name = "NewName" |
Renomear planilha por nome
1 | Planilhas ("OldSheet"). Name = "NewName" |
Renomear folha por número de índice de folha
Aqui, usamos 1 para renomear a primeira planilha na pasta de trabalho.
1 | Folhas (1) .Nome = "NovoNome" |
Renomear folha por nome de código
Este código renomeará uma planilha usando seu nome de código VBA (discutido acima):
1 | Component.Name = "NewName" |
Verifique se o nome da folha existe
Criamos uma função para testar se já existe uma planilha com um determinado nome.
123456789101112 | 'Teste se um intervalo existe em uma folha.'Deixe o intervalo em branco para testar se a folha existe'Entradas:'WhatSheet - String Name of Sheet (ex "Sheet1")'WhatRange (opcional, padrão = "A1") - Nome da string do intervalo (ex "A1")Função RangeExists (WhatSheet As String, Opcional ByVal WhatRange As String = "A1") As BooleanDim test As RangeOn Error Resume NextSet test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0No erro GoTo 0Função Final |
A função retornará TRUE se a planilha existir ou FALSE se não existir.
Use a função assim:
123 | Sub Test_SheetExists ()MsgBox RangeExists ("configuração")End Sub |
Copiar folha e renomear
Este exemplo é de nosso artigo sobre Cópia de planilhas.
Depois de copiar e colar uma planilha, a planilha recém-criada se torna a ActiveSheet. Portanto, para renomear uma planilha copiada, basta usar ActiveSheet.Name:
12345678 | Sub CopySheetRename2 ()Planilhas ("Planilha1"). Copiar depois: = Planilhas (Planilhas.Contagem)On Error Resume NextActiveSheet.Name = "LastSheet"No erro GoTo 0End Sub |
Observação: adicionamos o tratamento de erros para evitar erros se o nome da planilha já existir.