Цитата |
---|
TheBestOfTheBest написал: Set List1 = ActiveSheet...List1.Delete |
Разнесение данных по отдельным листам
Разнесение данных по отдельным листам
03.04.2019 13:20:06
Всем добрый день!
Еще раз хочу поблагодарить сообщество форума за помощь (и моё сэкономленное время)) Макрос из данной темы успешно мной используется, но вот хотел попросить подсказки в небольшом нюансе - он работает только если лист имеет имя "Лист1" Полагаю, что это указано в этой строке: Set List1 = ActiveWorkbook.Worksheets("Лист1") Вопрос - как изменить это условие, что бы макрос отрабатывал независимо от имени на текущем листе где он запускается Ну и как следствие наверное также надо изменить и предпоследнюю строку кода ( Sheets("Лист1").Delete ), которая удаляла тот лист с исходными данными, то есть что бы команда также удаляла именно тот лист на котором запускался макрос без привязки к имени (не удаляя другие листы в данной книге)
Изменено: |
|||
|
Разнесение данных по отдельным листам
06.09.2018 06:24:36
С макросом всё же несколько удобнее в том плане что просто новый документ создал и в нём макросом всё разнёс |
|||
|
Разнесение данных по отдельным листам
06.09.2018 06:22:41
Не учел этот момент сразу
Изменено: |
|||||
|
Разнесение данных по отдельным листам
Разнесение данных по отдельным листам
Разнесение данных по отдельным листам
05.09.2018 06:13:20
|
|||
|
Разнесение данных по отдельным листам
04.09.2018 15:28:23
Кстати хорошая идея
Правда я что-то запутался куда её вставить И что-то мне кажется в этом месте лишние строки есть (повторяется переименование как мне кажется из первоначальной версии макроса), только не знаю какие именно строки удалить/заменить что-бы не сломать макрос
|
|||
|
Разнесение данных по отдельным листам
Разнесение данных по отдельным листам
04.09.2018 15:04:28
Да все верно
Я возможно не совсем понятно выразил свою мысль (или Ваш вопрос не совсем понял), но при переносе данных (те, что между маркерами START/END) из листа 1 на новые листы у нас на каждом новом листе в определенной ячейке будет находиться идентификационный номер - то есть номер объекта откуда выгружается соответствующий блок с информацией (из стороннего ПО)
Собственно говоря с учетом правки из сообщения 17 и корректировки в сообщении 15 (стало корректно определять диапазон данных для переноса) заработало! Kuzmich, StoTisteg, спасибо Вам большое! Добавил в конец макроса команду для удаления первого листа Правда удаляет только по имени листа Если не затруднит подскажите пожалуйста как можно удалить удалить именно первый лист в книге (без привязки к имени) Было бы совсем замечательно) Макрос теперь выглядит так:
|
|||||||||
|
Разнесение данных по отдельным листам
04.09.2018 14:27:31
Мне надо что бы имя листа присваивалось из определенной ячейки (к примеру А6) на этом же листе
Если я правильно понимаю нужно: 1. перенести данные на новые листы (это благодаря Вам уже сделано) 2. переименовать каждый лист по имени ячейки То есть макрос переименования листов запускать уже после этапа 1 Или так не получится? |
|||||
|
Разнесение данных по отдельным листам
04.09.2018 13:52:37
Просто на каждом получившемся листе в определенной ячейке будет находиться уникальное значение (то есть совпадений не будет), по которому можно будет понять, что на этом листе находятся данные, соответствующие данному идентификатору (т.е. имени листа)
|
|||||
|
Разнесение данных по отдельным листам
04.09.2018 12:22:16
Kuzmich,
Спасибо Почти сработало, но макрос почему-то переносит только первые три столбца, а у меня количество столбцов бывает разное, в зависимости от шаблона выгрузки из стороннего ПО (просто везде будут "маркеры") Можно сделать так, что бы копировались все строки от начального маркера до конечного независимо от количества столбцов? И на счет пререименования листов - нарастающий номер мысль интересная, но в моём случае не совсем подходит - надо брать имя из определенной ячейки для идентификации Что-то вроде: For Each Sh In Worksheets Sh.Name = Sh.Range("A6").Text нашел где-то здесь же на форуме, но изменить Ваш скрипт почему-то не получается - знаний не хватает)) |
|
|
Разнесение данных по отдельным листам
04.09.2018 08:19:40
Всем спасибо за желание помочь)
Постараюсь уточнить (пример во вложении) В одном блоке данных (между START и END) количество столбцов одинаково, но количество строк разное (поэтому к количеству строк не привязаться) Задача каждый блок данных между START и END перенести на новый лист в этой же книге и (полагаю эту операцию надо делать после переноса) переименовать лист по значению из определенной ячейки (к примеру А6) Сами маркеры переносить не обязательно Сами данные формируются в стороннем ПО (через буфер обмена в txt формате) и, как я уже сказал, "маркеры" можно сконфигурировать - то есть (если достаточно одного маркера) сделать только один маркер в начале или в конце или сделать его в виде спец-символа Но маркеры всегда будут одинаковыми (то есть не получится сделать перед каждым блоком разный маркер типа START1, START2 и т.п) P.s. Excel 2016 если что |
|
|
Разнесение данных по отдельным листам
03.09.2018 15:48:56
Собственно вопрос в заголовке
Поиском конечно прошелся, но подходящего именно мне варианта не смог найти Суть Есть лист в котором есть несколько групп однотипных (но не одинаковых по количеству строк) данных, имеющие в начале и в конце определенные "слова-маркеры" Например: START набор данных набор данных набор данных ... END START набор данных набор данных набор данных ... END Задача все строки между START и END переместить в новый лист, а новый лист переименовать по имени находящемуся в определенной ячейке этого листа (к примеру А6) Что-то у меня не выходит каменный цветок)) В PLEX подходящего решения также не нашел p.s. "слова-маркеры" при необходимости можно настроить - т.е. сделать любой текст/символ, разместить маркер в начале группы или в конце или там и там p.p.s сами "маркеры" как данные не принципиальны, то есть носят сугубо вспомогательный смысл их переносить не обязательно Буду признателен за подсказку) |
|
|
Как можно изменить область действия (Книга; Лист) для именованного диапазона?
29.06.2016 05:56:11
Всем добрый день
Пытался найти ответ, но не смог Суть - в книге есть несколько именованных диапазонов, но почему-то некоторые редактируемые, а некоторые нет Например список К2 можно и редактировать и удалять А вот эти два почему то заблокированы для изменений Создать новое имя с совпадающим не дает Не могу разобраться в чем проблема |
|
|