Страницы: 1
RSS
Копировать строки, соответствующие определенным критериям, из одной таблицы в другую
 
Всем доброго времени суток.
В примере имеется книга учёта работы машин один месяц. В полной книге около 30 листов и на каждую машину отдельный лист. Используемый макрос CopyRows копирует строки по условию со всех листов, но в разные книги на первый лист. То есть после срабатывания макроса создаётcя для каждой копируемой строки отдельная книга.  Мне нужно чтобы строки по выбранной дате со всей книги копировались на один лист(как в листе 3 в файле).  Поиском ничего не нашёл.
Спасибо за помощь.
Изменено: alex116 - 08.12.2018 11:33:52
 
Все строки начиная с
Код
Set rInputTable = Range("A9").CurrentRegion
включите в цикл
Код
Dim wsh As Worksheet

For Each wsh In ThisWorkbook.Worksheets
......... 'строки Вашего кода
Next wsh
No crime is so great as daring to Excel. (Winston Churchill)
 
Покажите где поправить. У меня не получается зациклить. Спасибо.
Скрытый текст
Изменено: alex116 - 08.12.2018 11:32:07
 
Вопрос, строки со всех листов нужно скопировать на один лист новой книги, или же в новой книге создаётся отдельный лист для каждого скопированного листа?
Код
Dim wsh As Worksheet
 
For Each wsh In ThisWorkbook.Worksheets

wsh.Activate
lCount = 0

Set rInputTable = Range("A9").CurrentRegion
......
rTarget.Value = arOutput

ThisWorkbook.Activate

Next wsh
Изменено: Maruf - 05.12.2018 00:36:21
No crime is so great as daring to Excel. (Winston Churchill)
 
И ещё нужно будет создать переменную для новой книги в которую Вы копируете данные, иначе в каждом цикле будет создаваться новая книга.

т.е. до объявления цикла
Код
Dim wb As Workbook
Set wb=Workbooks.Add
а в цикле вместо
Код
Workbooks.Add
пишете
Код
wb.Activate
No crime is so great as daring to Excel. (Winston Churchill)
 
Цитата
Maruf написал:
Вопрос, строки со всех листов нужно скопировать на один лист новой книги, или же в новой книге создаётся отдельный лист для каждого скопированного листа?
На один лист. И желательно не в новой книге, а в рабочей.  
Изменено: alex116 - 04.12.2018 13:56:59
 
Цитата
alex116 написал: И желательно не в новой книге, а в рабочей
Тогда
Код
Set wb=Workbooks("Название Вашей Рабочей книги")
Цитата
alex116 написал: На один лист.
Тут посложнее, надо будет искать последнюю строку с данными, и через нужное количество строк вставлять новые данные
No crime is so great as daring to Excel. (Winston Churchill)
 
Всё равно Спасибо большое.  
 
К сожалению цель не достигнута. Макрос копирует строки по условию с разных листов в разные книги. А мне нужно в одну книгу или на один лист этой книги. Должно получиться так:

ДАТА        №п/л  и т .д.
05.12.18    1234
05.12.18    3456
05.12.18    7890
 
По какому условию нужно копировать? И покажите на третьем листе желаемый результат (поменяйте файл в первом сообщении).
 
По дате. Файл поменял.
Посоветуйте как сделать копирование на один лист? Поиском ничего подобного не нашёл.
Изменено: alex116 - 08.12.2018 11:33:09
 
Может кому-то пригодится. На первом этапе макрос копирует нужный диапазон со всех листов на лист Дата. На втором этапе фильтром выбираем нужную дату.
Страницы: 1
Наверх