/ / Błąd runtime zakresu w Excel VBA - excel, vba, excel-vba

Błąd runtime zakresu w programie Excel VBA - excel, vba, excel-vba

Wierzę, że mam wszystko inne, ale zrozumiałemlinia Set newSheetName = sht.Range („A1: A”) nie pobiera żadnych informacji. Otrzymuję błąd czasu wykonywania „1004”: Metoda „Zakres” obiektu „_Worksheet” nie powiodła się. czego mi brakuje?

To, co próbuję osiągnąć, to to makrospójrz na zakres w arkuszu „ARK_E_TEXAS”, który jest od A1 do C23 („ARK_E_TEXAS_LIST”). Jeśli A1: A ma dane, utworzy nowy arkusz i nada nazwę nowemu arkuszowi z nazwą komórki. Używam linii Lastrow, aby dowiedzieć się, ile linii ma się obniżyć, i funkcji if, aby pominąć puste miejsca.

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

Odpowiedzi:

-1 dla odpowiedzi nr 1

Ok dostałem odpowiedź za pomocą @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