Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.06.2020
Сообщений: 3
1

Макрос: разделение таблицы на несколько по опр.условию в разные файлы

25.06.2020, 19:34. Просмотров 1654. Ответов 4
Метки нет (Все метки)

Дорогие мои, хорошие, помогите!)
Я уж намучилась)
Можно как-то сформулировать код, чтобы таблица раздербанилась на несколько файлов (с опр.названием) и с опр. условием?
В примере на основании 2 столбца таблица пилится на разные листы (а нужно в файлы) с соотв.названием (из 2 столбца).
Шапка таблицы также копируется.
В идеале нужно, чтобы вставлялось не в новосозданный файл, а файл-болванку с уже забитыми формулами (см. лист "Болванка", т.к. там уже есть суммирующая таблица со статистикой).
В оригинальной таблице более 10 тыс.строк, условие в столбце может принимать 70+ значений!
Рыцари Excel, не оставьте даму в опасности утомительнейшего ручного труда!))
0
Вложения
Тип файла: xls NeedHelp.xls (30.0 Кб, 5 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2020, 19:34
Ответы с готовыми решениями:

Разделение файла на несколько частей(макрос)
Ребят кто-нить помогите. Я уже отчаялся не знаю как сделать это "Разделить файл на несколько частей...

Разделение чередующихся строчек в разные файлы
Условие: Файл с исходными данными содержит 2 стихотворения разных авторов (строки чередуются)....

Запрос по наименованию, разделение таблицы на несколько запросов (таблиц)
Добрый день форумчане! Прошу помочь и подсказать как можно реализовать следующее: Есть Таблица...

Макрос для разделения таблицы на несколько
Добрый день! Имеется макрос (см.приложение) который разделяет одну большую таблицу по ключевому...

4
4056 / 2178 / 922
Регистрация: 01.12.2010
Сообщений: 4,539
25.06.2020, 23:13 2
Лучший ответ Сообщение было отмечено Bambaleilo как решение

Решение

Bambaleilo, Попробуйте так. Тренироваться, естественно, на кошках (c)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub Test()
    Dim colA As New Collection, p$, f$, a, i&, txtA$, txtB$
    Dim ws As Worksheet, r As Range, wb As Workbook
    Set ws = ThisWorkbook.Worksheets("Исходные данные")
    Set r = ws.Range("D1", ws.Cells(ws.Rows.Count, "A").End(xlUp))
    a = r.Value: p = ThisWorkbook.Path & "\"
    ws.AutoFilterMode = False
    
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 2 To UBound(a)
        txtA = CStr(a(i, 1))
        txtB = CStr(a(i, 2))
        colA.Add New Collection, txtA
        If Err.Number = 0 Then
           r.AutoFilter 1, txtA
        End If: Err.Clear
        colA(txtA).Add txtB, txtB
        If Err.Number = 0 Then
           r.AutoFilter 2, txtB
           f = p & txtA
           If Len(Dir$(f, vbDirectory)) = 0 Then MkDir f
           Set wb = Workbooks.Add(xlWBATWorksheet)
           r.Copy wb.Worksheets(1).Cells(1)
           wb.SaveAs f & "\" & txtB & ".xls", xlNormal: wb.Close
        End If: Err.Clear
    Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
2
0 / 0 / 0
Регистрация: 25.06.2020
Сообщений: 3
26.06.2020, 05:50  [ТС] 3
Боже мой, pashulka, спасибо!)
Это какая-то магия!!)
Я вижу, как последовательно выбираются разные значения под фильтром)
Ииии... Я вижу нужные папки и файлы в папках!)))
То, что нужно! Великолепно просто!) Я в полном восторге!))

А в самом коде я поплыла на 5 строке))
(и мне очень понравилась третья! не догадалась раньше, буду пользоваться теперь) за это отдельное спасибо!))
Единственное, что ещё как-то зацепило моё сознание - это слово copy

Спасибо, pashulka, Вы мой спаситель-от-ручного-труда-избавитель!))
0
4056 / 2178 / 922
Регистрация: 01.12.2010
Сообщений: 4,539
26.06.2020, 10:08 4
Лучший ответ Сообщение было отмечено Bambaleilo как решение

Решение

Bambaleilo, Если правильно понял, насчёт шаблона, то пример можно найти в аттаче. В качестве "шаблона" может выступать и самая обычная книга. Но обратите внимание на то, что даже там нет проверки корректности данных, которые мы используем в качестве источника для имени папки и файла. Так что, имеет смысл либо предварительно удалять весь мусор, либо проверять нет ли ошибки после сохранения книги.
1
Вложения
Тип файла: zip Sample_for_Bambaleilo.zip (30.6 Кб, 1 просмотров)
0 / 0 / 0
Регистрация: 25.06.2020
Сообщений: 3
26.06.2020, 19:05  [ТС] 5
Ооооо!)) Оооооо!)))
pashulka, Вы мой герой!)
Сегодня целый день работала с Вашим первым макросом)

Момент, когда я его запустила, мммм! Минута и 15 секунд на 12 тысяч строк! Шикааааарно!))
Я так вдохновилась, что нарисовала себе ещё один файлик-болванку, который бы брал данные из открытого файла (из примерно 200, которые сформировались) и делал то, что я делала обычно вручную (убирал дубликаты по столбцу, вставлял в таблицу, выделял строки на удаление) . Работала с ним сегодня цельный день, сделала 35 файлов даже с учётом двух макросов...

Если раньше по моим подсчётам у меня должно было уйти 14 дней (четырнадцааааать) , то сейчас я рассчитываю ещё примерно на 12 часов)
Боюсь представить, сколько будет, если использовать то, что Вы ещё написали!)) Пойду проверю!))
Спасибо-спасибо-спасибооооо!))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2020, 19:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений
Люди добрые, приветствую вас!))) Мне нужна ваша помощь в решении одной проблемки! С макросами...

Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений
Доброго дня всем!))) Уважаемые форумчане, мне нужна ваша помощь в решении одной проблемки! Для...

Макрос для сдвига xls таблицы на несколько ячеек ниже
Добрый день, уважаемые форумчане. Выгружаю из SQL Server при помощи DTS Package xls-таблицу. Далее...

Webpack. В продакшн дублируются опр. файлы
Здравствуйте. При создании билда в сам корень папки (dist) попадают определенные файлы. Пути...

Разделение отчета на отдельные файлы PDF-файлы
Доброй ночи форумчане! Просьба помочь в решении задачи. Есть простая база, данные в которую...

Разделение одной сети на 2 разные
Сап, киберач, есть одна сеть. Есть ip-телефония через сервер. Интернет заходит через джунипер, к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.