Я считаю, что все остальное выдумано, но строка Set newSheetName = sht.Range («A1: A») не вытягивает никакой информации. Я получаю ошибку времени выполнения «1004»: метод «Диапазон» объекта «Рабочий стол» не удался. Что мне не хватает?Ошибка времени выполнения в Excel VBA
То, что я пытаюсь достичь, заключается в том, чтобы этот макрос просматривал диапазон в листе «ARK_E_TEXAS», который имеет значение от A1 до C23 («ARK_E_TEXAS_LIST»). Если A1: A имеет данные, он создаст новый лист и назовет новый лист с именем ячейки. Я использую линию Lastrow, чтобы узнать, сколько строк должно быть вниз, а функция if - пропускать пробелы.
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
Вы сделали 'Set dataRange = sht.Range (" A1: C "& Lastrow)' позже, так зачем раньше вызывать '& lastrow'? – findwindow
Это может быть только опечатка, но «If newSheetName.Value» «Then' должно быть' If newSheetName.Value <> "" Then' –
@findwindow мой код даже не доходит до этой точки. Я получаю ошибку в Set newSheetName. Ваш вопрос может быть проблемой, но я не буду знать, пока не получу первую ошибку. – wjwelch1