Adicionar uma nova folha de cálculo a um livro de trabalho utilizando o VBA.
O código abaixo mostra como a nova folha obtém o seu valor a partir de uma célula de uma folha de cálculo já existente.
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim wsWithValue As Worksheet
Dim strSheet As String: strSheet = "Sheet1"
Set wsWithValue = wb.Sheets(Index:=strSheet)
Dim ws As Worksheet
Set ws = wb.Worksheets.Add
Dim strRange As String: strRange = "A1"
Dim rng As Range
Set rng = wsWithValue.Range(Cell1:=strRange)
Dim strName As String: strName = rng.Value
ws.Name = strName
Nota: O código acima foi criado utilizando Suplemento do editor de código VBA.
O código poderia ter sido mais compacto -
por exemplo, poderia ter inserido o endereço do intervalo diretamente sem ter uma variável
strRange
-
mas aqui optei por ter todos os passos o mais explícitos possível, o que também torna o código mais versátil e extensível.
Criar uma nova folha e copiar dados
Por fim, é muito provável que adicione alguns dados à nova folha de cálculo. Abaixo, presumo que os dados provêm de outra fonte de dados aberta pela primeira vez.
Dim wbDestination As Workbook
Set wbDestination = ActiveWorkbook
Dim wsDestination As Worksheet
'add the new worksheet
Set wsDestination = wbDestination.Worksheets.Add
Dim strRangeDestination As String: strRangeDestination = "B2"
Dim rngDestination As Range
Set rngDestination = wsDestination.Range(Cell1:=strRangeDestination)
'get acces to the source
Dim wbSource As Workbook
Set wbSource = Workbooks.Open(Filename:="C:\Code VBA\Demo\Data.xlsx")
Dim wsSource As Worksheet
Dim strSheetSource As String: strSheetSource = "Sheet1"
Set wsSource = wbSource.Sheets(Index:=strSheetSource)
Dim strRangeSource As String: strRangeSource = "A1"
Dim rngSource As Range
Set rngSource = wsSource.Range(Cell1:=strRangeSource)
'copy the value
rngDestination.Value = rngSource.Value
Autor: Mark Uildriks Referência: Planilhas.Adicionar(Excel) | Microsoft Learn