Всем привет, помогите с макросом. Есть таблица с огромным количеством строк и столбцов, на основании столбца с наименованием города (64 столбец), необходимо создать лист с наименованием города и скопировать туда данные отфильтрованные по данному городу. Вся База 71 столбец и 400 000 строк
В дальнейшем каждый лист необходимо сохранить в качестве отдельной книги в папку с именем из столбца 7.
К сожалению ничего прикрепить для примера не могу.
OrgaZex написал: К сожалению ничего прикрепить для примера не могу
а придется... (если хотите получить помощь) как минимум нужна структура таблицы данных а 400тыс строк не обязательно, но штук 4 или 40 будет в самый раз
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Макросом можно это все сделать, но нужен файл. Кидайте в ЛС, нужны будут те данные по которым создаем листы и соответствующие данные которые копируем форматируем (их можно произвольной инфой заполнить). Т.к. как мы их будем копировать?
Макрос на создание листов из списка, без проверки на уникальность имен листа(т.е. при одинаковых нименованиях города, буде ошибка выполнени макроса) и без "форматирования" данных.
Код
Sub New_Page()
Set MyCity = ThisWorkbook.Sheets(1).Cells(1048575, 64).End(xlUp)
NumberLists = MyCity.Row
For i = 2 To NumberLists
ShName = ThisWorkbook.Sheets(1).Cells(i, 64).Value
Worksheets.Add(After:=Sheets(Sheets.Count)).Name = ShName
Next i
End Sub
Я такое часто делаю без изысков - сперва цикл по данным и в СЛОВАРЬ каждому ГОРОДУ собираю коллекцию номеров его строк. Затем цикл по словарю - создаём книгу, затем цикл по коллекции строк - копируем в созданную книгу, сохраняем файл. Да, не особо быстро, но такие объёмы целиком в массив не запихнуть, можно "массивить" частями, но может просто быстро написать код, запустить и сходить попить кофе
Я такое часто делаю без изысков - сперва цикл по данным и в СЛОВАРЬ каждому ГОРОДУ собираю коллекцию номеров его строк.
Это для того что бы имена листов не дублировались?
Я думал создавать листы после проверки на их наличие в книге, если лист с таким именем существует, то добавлял бы строку на существующий лист. Но возможно, что ваш способ будет более производительным.
Да - в словаре будут только уникальные значения/названия, т.е на дубли ничего проверять уже не нужно. Но вот проверить на допустимость названия листа (и файла) нужно бы, хотя такой казус и маловероятен.