Eu acredito que eu tenho tudo o resto descoberto, masa linha Definir newSheetName = sht.Range ("A1: A") não está extraindo nenhuma informação. Estou recebendo o erro em tempo de execução "1004": método "Range" do objeto "_Worksheet" falhou. o que estou perdendo?
O que estou tentando alcançar é que essa macroobserve o intervalo na planilha "ARK_E_TEXAS", que é de A1 a C23 ("ARK_E_TEXAS_LIST"). Se A1: A tiver dados, ele criará uma nova planilha e nomeará essa nova planilha com o nome da célula. Eu estou usando a linha Lastrow para saber quantas linhas descer e a função if para pular os espaços em branco.
Sub Create_ARK_E_TEXAS()
Dim sht As Worksheet
Dim newSheetName As Range
Dim dataRange As Range
Dim Lastrow As Long
Set sht = ThisWorkbook.Sheets("ARK_E_TEXAS")
Set newSheetName = sht.Range("A1:A")
Lastrow = sht.Range("ARK_E_TEXAS_LIST").Rows.Count
Set dataRange = sht.Range("A1:C" & Lastrow)
For Each newSheetName In dataRange
If newSheetName.Value <> "" Then
Sheets.Add After:=Sheets(Sheets.Count) "creates a new worksheet
Sheets(Sheets.Count).Name = newSheetName.Value " renames the new worksheet
End If
Next newSheetName
End Sub
Respostas:
-1 para resposta № 1Ok, recebi minha resposta com a ajuda do @AlexWeber.
Sub Create_ARK_E_TEXAS()
Dim sht As Worksheet
Dim newSheetName As Range
Dim dataRange As Range
Dim Lastrow As Long
Set sht = ThisWorkbook.Sheets("ARK_E_TEXAS")
Lastrow = sht.Range("ARK_E_TEXAS_LIST").Rows.Count
Set newSheetName = sht.Range("A1:A" & Lastrow)
Set dataRange = sht.Range("A1:A" & Lastrow)
For Each newSheetName In dataRange
If newSheetName.Value <> "" Then
Sheets.Add After:=Sheets(Sheets.Count) "creates a new worksheet
Sheets(Sheets.Count).Name = newSheetName.Value " renames the new worksheet
End If
Next newSheetName
End Sub