Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сохранение группы записей в отдельный файл - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение группы записей в отдельный файл (Макросы/Sub)
Сохранение группы записей в отдельный файл
Zores Дата: Вторник, 04.04.2017, 05:26 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.

У меня возникла следующая потребность - в таблице есть один столбец, в которой задана группа записи. То есть на некоторое множество записей задана определённая группа. Возникла идея сохранить в каждый отдельный файл с именем группы только те записи, которые находятся в данной группе. Другими словами, из одного большого файла нужно сделать множество мелких, в которых находятся данные только данной группы. Была попытка сохранения файлов через фильтр, то есть вручную выбирались записи, но, очевидно, что этот вариант очень плох.

Я понимаю, как обеспечить сохранение отдельных файлов, но вот момент с выбором только необходимых записей, которые удовлетворяют данной группы и не имеют пустых строчек - другое дело.
 
Ответить
СообщениеДобрый день.

У меня возникла следующая потребность - в таблице есть один столбец, в которой задана группа записи. То есть на некоторое множество записей задана определённая группа. Возникла идея сохранить в каждый отдельный файл с именем группы только те записи, которые находятся в данной группе. Другими словами, из одного большого файла нужно сделать множество мелких, в которых находятся данные только данной группы. Была попытка сохранения файлов через фильтр, то есть вручную выбирались записи, но, очевидно, что этот вариант очень плох.

Я понимаю, как обеспечить сохранение отдельных файлов, но вот момент с выбором только необходимых записей, которые удовлетворяют данной группы и не имеют пустых строчек - другое дело.

Автор - Zores
Дата добавления - 04.04.2017 в 05:26
nilem Дата: Вторник, 04.04.2017, 07:30 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Здравствуйте
может вот это подойдет (см. Файл-пример)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеЗдравствуйте
может вот это подойдет (см. Файл-пример)

Автор - nilem
Дата добавления - 04.04.2017 в 07:30
Zores Дата: Вторник, 04.04.2017, 12:27 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
может вот это подойдет (см. Файл-пример)

Благодарю, это обеспечило несколько идей, на основе которых можно сделать фильтрацию. Немного, правда смущает, что фильтрация проводится уже после того, как была добавлена страница. Тогда появляется вариант сделать страницу как переменную, а после сохранять её отдельно, либо после создания листов, сохранять каждый как отдельный файл.
 
Ответить
Сообщение
может вот это подойдет (см. Файл-пример)

Благодарю, это обеспечило несколько идей, на основе которых можно сделать фильтрацию. Немного, правда смущает, что фильтрация проводится уже после того, как была добавлена страница. Тогда появляется вариант сделать страницу как переменную, а после сохранять её отдельно, либо после создания листов, сохранять каждый как отдельный файл.

Автор - Zores
Дата добавления - 04.04.2017 в 12:27
Zores Дата: Среда, 05.04.2017, 08:16 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всё внимательно посмотрел и нашёл следующий скрипт:
[vba]
Код

Sub ertert()
Dim x, i&, sPath$
With Application
    .ScreenUpdating = False: .DisplayAlerts = False
End With
x = Sheets("Sheet1").Range("A1").CurrentRegion.Value

With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 2 To UBound(x)
        If Not .Exists(x(i, 1)) Then .Item(x(i, 1)) = 1
    Next i: x = .keys
End With
On Error Resume Next: Err.Clear
sPath = ThisWorkbook.Path & "\"
With Sheets("Sheet1")
    With .Range("A1").CurrentRegion
        .AutoFilter
        For i = 0 To UBound(x)
            .AutoFilter Field:=1, Criteria1:=x(i)
            .SpecialCells(12).Copy
            With Workbooks.Add
                .Sheets(1).Range("A1").Select: .Sheets(1).Paste
                .Sheets(1).Range("A1").CurrentRegion.Columns.AutoFit
                .SaveAs Filename:=sPath & x(i), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
                DoEvents: .Close
            End With
        Next i
        .AutoFilter
    End With
End With
With Application
    .CutCopyMode = False: .ScreenUpdating = True: .DisplayAlerts = True
End With
End Sub

[/vba]
Тему можно закрыть


Сообщение отредактировал Zores - Среда, 05.04.2017, 08:17
 
Ответить
СообщениеВсё внимательно посмотрел и нашёл следующий скрипт:
[vba]
Код

Sub ertert()
Dim x, i&, sPath$
With Application
    .ScreenUpdating = False: .DisplayAlerts = False
End With
x = Sheets("Sheet1").Range("A1").CurrentRegion.Value

With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 2 To UBound(x)
        If Not .Exists(x(i, 1)) Then .Item(x(i, 1)) = 1
    Next i: x = .keys
End With
On Error Resume Next: Err.Clear
sPath = ThisWorkbook.Path & "\"
With Sheets("Sheet1")
    With .Range("A1").CurrentRegion
        .AutoFilter
        For i = 0 To UBound(x)
            .AutoFilter Field:=1, Criteria1:=x(i)
            .SpecialCells(12).Copy
            With Workbooks.Add
                .Sheets(1).Range("A1").Select: .Sheets(1).Paste
                .Sheets(1).Range("A1").CurrentRegion.Columns.AutoFit
                .SaveAs Filename:=sPath & x(i), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
                DoEvents: .Close
            End With
        Next i
        .AutoFilter
    End With
End With
With Application
    .CutCopyMode = False: .ScreenUpdating = True: .DisplayAlerts = True
End With
End Sub

[/vba]
Тему можно закрыть

Автор - Zores
Дата добавления - 05.04.2017 в 08:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение группы записей в отдельный файл (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!