Всем добрый день!
Еще раз хочу поблагодарить сообщество форума за помощь (и моё сэкономленное время))
Макрос из данной темы успешно мной используется, но вот хотел попросить подсказки в небольшом нюансе - он работает только если лист имеет имя "Лист1"
Полагаю, что это указано в этой строке:
Set List1 = ActiveWorkbook.Worksheets("Лист1")
Вопрос - как изменить это условие, что бы макрос отрабатывал независимо от имени на текущем листе где он запускается
Ну и как следствие наверное также надо изменить и предпоследнюю строку кода ( Sheets("Лист1").Delete ), которая удаляла тот лист с исходными данными, то есть что бы команда также удаляла именно тот лист на котором запускался макрос без привязки к имени (не удаляя другие листы в данной книге)
Скрытый текст |
---|
Sub Export()Dim iLastRow As Long Dim FoundCell As Range Dim FAdr As String Dim n As Integer Dim List1 As Worksheet Dim FRow As Long Dim ERow As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row Set List1 = ActiveWorkbook.Worksheets("Лист1") With Range("A1:A" & iLastRow) Set FoundCell = .Find("START", .Cells(.Cells.Count), xlValues, xlWhole, , xlNext) If Not FoundCell Is Nothing Then FAdr = FoundCell.Address n = 1 Do FRow = FoundCell.Row + 1 ERow = Cells(FRow, "A").End(xlDown).Row - 1 Set FoundCell = .FindNext(FoundCell) Worksheets.Add After:=Worksheets(Worksheets.Count) List1.Rows(FRow & ":" & ERow).Copy Range("A1") On Error Resume Next ActiveSheet.Name = Cells(1, 1).Value 'Берем имя листа из ячейки А5 List1.Activate Loop While FoundCell.Address <> FAdr End If End With Application.DisplayAlerts = False Sheets("Лист1").Delete Application.DisplayAlerts = True End Sub |