Страницы: 1
RSS
Разбить на отдельные книги по данным фильтра
 
Добрый день!
Требуется помощь знающих макросы =)

Имеется выгрузка в excel-файле. Необходимо разбить данный файл на несколько книг по данным столбца с названием регионов. Для каждого региона - отдельный файл (в файле примера требуемый столбец выделен желтым). Регионы каждый раз одни и те же. Данная работа выполняется еженедельно, файлов достаточно много. Сейчас все делается вручную: фильтруется регион - сохраняется файл. Это занимает много времени =(
Может кто-нибудь знает, как автоматизировать данную задачу.

Заранее спасибо!
 
Цитата
yuliyabf написал: Необходимо разбить данный файл на несколько книг по данным столбца с названием регионов.
подобное делали здесь - Разделить одну таблицу на несколько
(если подойдёт)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
как автоматизировать данную задачу
Из столбца G выделяете уникальные значения регионов
Цикл по этим уникальным значениям с использованием автофильтра по региону
Копирование видимых значений в новую книгу
Сохранение книги с именем региона
 
В PLEX появилась такая функция
http://www.planetaexcel.ru/plex/

здесь почитайте - там с картинкой, все понятно
http://www.planetaexcel.ru/blog/
 
Цитата
Это занимает много времени
Пробуйте!
Макрос в модуль листа , создает новые книги с именем региона в той же директории, где находится файл с макросом
Код
Sub RaznestiDannye()
Dim i As Long
Dim n As Long
Dim Criterij As String
Dim iName As String
Dim WbN As Workbook
Application.ScreenUpdating = False

'отбор уникальных значений столбца G в столбец Z
    Range("G2:G" & Cells(Rows.Count, 7).End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy _
                                  , CopyToRange:=Range("Z1"), Unique:=True
'количество уникальных значений регионов
    n = Cells(Rows.Count, 26).End(xlUp).Row
    For i = 2 To n          'цикл по уникальным значениям
        Criterij = Cells(i, 26)
        iName = Criterij    'имя новой книги
    'создаем новую книгу с одним листом
      Set WbN = Workbooks.Add(xlWBATWorksheet)
    'ставим автофильтр по столбцу G
          Range("A2").CurrentRegion.AutoFilter 7, Criterij
    'копируем видимые строки в новую книгу
        AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy WbN.Sheets("Лист1").Range("A1")
        AutoFilter.Range.AutoFilter
        
        WbN.Sheets("Лист1").Columns("A:W").AutoFit
        WbN.Sheets("Лист1").Columns("Z").Delete
        WbN.SaveAs ThisWorkbook.Path & "\" & iName & ".xls"
        WbN.Close SaveChanges:=True
    Next
Application.ScreenUpdating = True
End Sub
Страницы: 1
Читают тему
Наверх