Como criar uma nova planilha usando código vba?
Depois de começar a aprender VBA, uma das coisas mais legais que você pode fazer é escrever código VBA para inserir uma nova planilha em uma pasta de trabalho.
Bem, já existe uma tecla de atalho para inserir uma nova planilha ou você também pode usar a opção normal, mas a vantagem de usar código VBA é que você pode adicionar várias planilhas com apenas um clique e também pode definir onde deseja adicionar isto.
Para isso, você precisa utilizar o método Sheets.Add, e neste artigo aprenderemos como utilizá-lo para adicionar uma ou mais planilhas em uma pasta de trabalho.
Método Planilhas.Add
Sheets.Add ([Before], [After], [Count], [Type])
- Antes: para adicionar uma nova planilha antes de uma planilha.
- Depois: Para adicionar a nova planilha antes de uma planilha.
- Contagem: número de folhas a adicionar.
- Tipo: Tipo de planilha que você deseja adicionar ( LINK )
Escreva o código VBA para adicionar uma nova planilha a uma pasta de trabalho
Abra o editor do Visual Basic e siga estas etapas.
- Primeiro, você precisa inserir o método Sheets.Add.
- A seguir, você precisa definir onde adicionar a nova planilha (Antes ou Depois).
- O próximo passo é inserir o número de planilhas.
- Em última análise, o tipo de folha.
Diferentes maneiras de adicionar novas planilhas em uma pasta de trabalho usando código VBA
Abaixo estão diferentes maneiras de adicionar uma nova planilha a uma pasta de trabalho:
1. Adicione uma única planilha
Para adicionar uma única planilha, você pode usar o código abaixo, onde não especificou nenhum argumento.
Sub SheetAddExample1() ActiveWorkbook.Sheets.Add End Sub
Este código diz ao Excel para adicionar uma planilha na pasta de trabalho ativa, mas como você não tem argumentos, ele usará os padrões e adicionará uma planilha (xlWorksheet) antes da planilha ativa.
Aqui está outra maneira de escrever isso, veja o código abaixo.
Sub SheetAddExample2() Sheets.Add End Sub
Como você já está na pasta de trabalho ativa, também pode usar o código abaixo. Ele faz a mesma coisa.
2. Adicione várias planilhas
Para adicionar várias planilhas de uma vez, basta definir o argumento COUNT com o número de planilhas que deseja adicionar.
Sub AddSheets3() Sheets.Add Count:=5 End Sub
Agora, o número de planilhas que você define é 5; portanto, quando você executa esse código, ele adiciona instantaneamente as cinco novas planilhas à pasta de trabalho.
3. Adicione uma planilha com um nome
Se quiser renomear a planilha após adicioná-la, você pode usar o seguinte código:
Sub AddNewSheetswithNameExample1() Sheets.Add.Name = "myNewSHeet" End Sub
No código acima, usamos o objeto name ( LINK ) que ajuda a especificar o nome de uma planilha.
4. Adicione uma planilha com o nome de uma célula
Você também pode usar o valor para usar como nome da planilha de uma célula.
Sub AddNewSheetswithNameExample2() Sheets.Add.Name = Range("A1") End Sub
No código acima, a célula A1 é usada para obter o nome da nova planilha.
5. Adicione uma planilha antes/depois de uma planilha específica
Como esses argumentos já estão lá em Sheets.Add onde você pode especificar a planilha para adicionar uma nova planilha antes ou depois.
Sub AddSheetsExample5() Sheets.Add Before:=Worksheets("mySheet") Sheets.Add After:=Worksheets("mySheet") End Sub
Agora, no código acima, você tem duas linhas de código usadas antes e depois de um argumento no método Sheet.Add. Portanto, quando você executa esse código, ele adiciona duas planilhas, uma antes e outra depois de “mySheet”.
6. Adicione uma nova planilha no início
Usando o argumento antes de usar, você também pode adicionar uma planilha ao início das planilhas que possui na pasta de trabalho.
Então, basicamente, o que vamos fazer é especificar o número da planilha em vez do nome da planilha.
Sub AddSheetsExample6() Sheets.Add Before:=Sheets(1) End Sub
No código acima, você usou o número da planilha (1) que diz ao VBA para adicionar a planilha antes da planilha que está na primeira posição em todas as planilhas. Dessa forma sempre adicionará a nova planilha no início.
7. Adicione uma nova planilha no final (após a última planilha)
Para adicionar uma nova planilha no final, você precisa escrever o código de uma maneira diferente. Então para isso você precisa saber quantas planilhas tem a pasta de trabalho para poder adicionar uma nova planilha no final.
Sub AddSheetsExample8() Sheets.Add After:=Sheets(Sheets.Count) End Sub
No código acima, Sheet.Count retorna o número de planilhas que você tem na pasta de trabalho e, como você define o argumento posterior, ele adiciona a nova planilha após a última planilha da pasta de trabalho.
8. Adicione várias planilhas e use nomes de intervalos
O código a seguir conta linhas no intervalo A1:A7. Depois disso, ele faz um loop para adicionar planilhas com base na contagem do intervalo e usa os valores do intervalo para nomear a planilha ao adicioná-la.
Sub AddSheetsExample9() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value Worksheets.Add().Name = sheet_name Next i End Sub
Mas com o código acima, é possível que o nome da planilha que você deseja adicionar já exista ou você tenha uma célula vazia no intervalo de nomes.
Neste caso, é necessário escrever um código que possa verificar se a planilha com o mesmo nome já existe ou não e se a célula de onde deseja retirar o nome da planilha está vazia ou não.
Se ambas as condições forem atendidas, uma nova planilha deverá ser adicionada. Deixe-me colocar isso em duas etapas:
Em primeiro lugar , você precisa escrever uma função definida pelo usuário do Excel para verificar se já existe ou não uma planilha com o mesmo nome.
Function SheetCheck(sheet_name As String) As Boolean Dim ws As Worksheet SheetCheck = False For Each ws In ThisWorkbook.Worksheets If ws.Name = sheet_name Then SheetCheck = True End If Next End Function
Em segundo lugar, você precisa escrever algum código usando esta função e este código também precisa verificar se a célula do nome está vazia ou não.
Sub AddMultipleSheet2() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value If SheetCheck(sheet_name) = False And sheet_name <> "" Then Worksheets.Add().Name = sheet_name End If Next i End Sub
Agora no código acima você usou a instrução VBA IF e nesta instrução você tem a função de verificação de planilha que verifica o nome da planilha e então você tem uma condição para verificar se a célula do nome tem um valor vazio.