У меня есть список под названием «Список округов» на одной вкладке и шаблон, который управляется путем помещения имени района в ячейку C3. В каждом округе есть дико различающееся количество филиалов (между 1 & 500+ филиалов в зависимости от района), поэтому в некоторых случаях в шаблоне отчета много пустоты. Я придумал это, чтобы пройти через список округов, скопировать вкладку «Шаблон», переименовать его в «Название округа», вставить имя района в ячейку C3, а затем у меня есть еще один цикл, чтобы скрыть пустые строки.Прокрутите список и скройте пробелы
Он работает, но он длится вечно, как 5 минут за вкладку, а затем после четырех вкладок я получаю объектную ошибку на первом, например, Sub CreateTabsFromList.
Есть ли проблема с кодом, или это просто неэффективный способ сделать это? Если это возможно, кто-нибудь может помочь с лучшим методом?
Sub HideRows()
Dim r As Range, c As Range
Set r = Range("a1:a1000") 'Sets range well beyond the last possible row with data
Application.ScreenUpdating = False
For Each c In r
If Len(c.Text) = 0 Then
c.EntireRow.Hidden = True 'Hide the row if the cell in A is blank
Else
c.EntireRow.Hidden = False
End If
Next c
Application.ScreenUpdating = True
End Sub
Sub CreateSheetsFromAList()
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("District List").Range("A1")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Sheets("Template").Copy After:=Sheets(Sheets.Count) 'creates a new worksheet
Range("C3").Value = MyCell.Value 'Pastes value in C3
Sheets(Sheets.Count).Name = MyCell.Value 'renames worksheet
HideRows 'Hides rows where cell in column A is ""
Next MyCell
End Sub
Вы никогда не отмечаете никакого ответа? Вы никогда не получали действительного ответа на свой вопрос или просто не знаете, как это сделать? – cyboashu
Я предполагаю, что вы спрашиваете об одной из моих старых сообщений, я только что вернулся и отметил ответ. Для этого я только что опубликовал несколько минут назад, еще не получил ответа. – AngelOfDef