Nome da folha dinamicamente atribuído a partir de um valor de célula

0

Sub CreateWorkSheetByRange()
Dim WorkRng As Range
Dim Ws As Worksheet
 Dim arr As Variant
Dim template As Worksheet
Dim xTitleId As String
On Error Resume Next
xTitleId = "Select Range"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
Application.ScreenUpdating = False
 arr = WorkRng.Value
 Application.ScreenUpdating = False
' Create the Worksheet names based on range selected 
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
Set Ws = Worksheets.Add(after:=Application.ActiveSheet)
  Ws.Name = arr(i, j)
   Next
Next
Application.ScreenUpdating = True
End Sub
    
por Howard 26.04.2015 / 17:00

1 resposta

0

Você certamente pode criar nomes de planilha usando os valores de células do Excel.
Use o seguinte código VBA

Sub CreateWorkSheetByRange()
'variable declaration
Dim WorkRng As Range
Dim Ws As Worksheet
Dim arr As Variant
Dim template As Worksheet
'**Edit-2:Declared xTitleId**
Dim xTitleId As String
'**Edit-3:Declared i and j**
Dim i as Variant
Dim j as Variant
'Start of Program
On Error Resume Next
'Specify the title of the dialog that requests for range
xTitleId = "Select Range"
' Assign the application.selection function to the variable WorkRng
Set WorkRng = Application.Selection
' Accept input from the user
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
' Create an array of the input values
arr = WorkRng.Value
' The following line is optional
Application.ScreenUpdating = False
' Create the Worksheet names based on range selected
For i = 1 To UBound(arr, 1)
    For j = 1 To UBound(arr, 2)
        Set Ws = Worksheets.Add(after:=Application.ActiveSheet)
        Ws.Name = arr(i, j)
    Next
Next
Application.ScreenUpdating = True
End Sub

O código acima permite que você selecione um intervalo de células a partir do qual você deseja criar os nomes das planilhas.
Você pode aumentar ainda mais isso e ver se pode modificar isso para o seu cenário de alteração de nomes
FYI: Eu sou novo no VBA também ... mas você pode aprender isso com muita facilidade

    
por 26.04.2015 / 19:22