Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Сбор данных с определенного листа большого кол-ва книг на один лист

Ответить
Настройки темы
VBA - Сбор данных с определенного листа большого кол-ва книг на один лист

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Всем доброго времени суток.
Недолго думая я погуглил, нашел как листы скопировать со всех книг в одну. Погуглил ещё нашел как всю информацию записать на 1 лист. Подкорректировал, сделал, чтоб сразу как надо было, но увы, меня ждала неудача. Теряется 1 строка при копировании информации с последующей книги. Код у меня такой
Код: Выделить весь код
Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
    FilesToOpen = Application.GetOpenFilename _
                  (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
                   MultiSelect:=True, Title:="Files to Merge")
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Не выбрано ни одного файла!"
        GoTo ExitHandler
    End If
    x = 1
    While x <= UBound(FilesToOpen)
        Workbooks.Open Filename:=FilesToOpen(x)
Sheets(3).Range("A1:Z" & Sheets(3).UsedRange.Rows.Count + 1).Copy ThisWorkbook.Sheets(1).Range("A" & ThisWorkbook.Sheets(1).UsedRange.Rows.Count + 1)
        x = x + 1
    Wend
ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub
Где я напортачил?

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 23:03, 24-04-2018

 

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska,
Цитата:
Не понял. Поясните.
Ну типа диалога вылазит с возможностью ввода либо имени листа, либо номера листа. Это читается в переменную потом дальше подставляется. Если ничего не введено ="", то тогда копирует все листы в текущую книгу, и объединяя листы с одинаковыми названиями.
Цитата:
Например? И зачем? И — листы или один лист?
И один лист и несколько листов.
Зачем? Ну например, мне надо данные собрать с 30 книг с 5 и 7 листов. Причём тут так же 2 варианта либо все сваливать в одну кучу с обоих листов, либо же каждый лист складировать по отдельности.
Вариантов много.
Просто хочу в свою надстройку вставить, а то случаи разные бывают. А код запросто потеряется и забудется, а надстройка - никогда)
Цитата:
Задача на самом деле куда шире: надо из выбранных файлов сгруппировать по дате создания
Это то хоть реально реализовать?

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 22:40, 25-04-2018 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Ну типа диалога вылазит с возможностью ввода либо имени листа, либо номера листа. »
Ясно. Создаёте UserForm, добавляете в него ListBox со множественным выделением, при инициализации формы из кода программно заполняете этот ListBox именами листов указанной Рабочей книги. В принципе можно и всё делать программно, включая создание-рисование формы и элементов диалога на ней.

Я бы мог приложить Вам пример, но у меня Office 2003, в новых Office, насколько я помню, концепция поменялась, и MSForm 2.0 не используется.

Цитата blackeangel:
Это то хоть реально реализовать? »
Поясните. Я опять не понял. Что группировать? Чья дата создания?

Отправлено: 02:04, 26-04-2018 | #12


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska,
Цитата:
Что группировать? Чья дата создания?
Группировать выбранные файлы в списке. Дата создания файлов

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 04:47, 26-04-2018 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Группировать выбранные файлы в списке. Дата создания файлов »
blackeangel, всё равно не понятно. Можно на каком-либо примере с картинками пояснить?

Отправлено: 04:52, 26-04-2018 | #14


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, а что здесь непонятного? Есть n файлов папке, из них надо выбрать все файлы за март, потом из этого же n выбрать за февраль и так по всем месяцам. Получим на выходе 12 одномерных массивов с путями файлов.
Но единственное, что надо лезть в свойства файлов и смотреть дату создания, а не дату открытия или изменения.

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 22:06, 27-04-2018 | #15


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Iska, а что здесь непонятного? Есть n файлов папке, из них надо выбрать все файлы за март, потом из этого же n выбрать за февраль и так по всем месяцам. Получим на выходе 12 одномерных массивов с путями файлов. »
Ага… Ну, так в чём проблема-то? Выбрали файлы в Application.GetOpenFilename(), дальше посредством Scripting.FileSystemObject смотрим их свойство .DateCreated, функцией Month() определяем месяц (что при этом делать с годом — непонятно). Дальше — зависит от того, какой конечный вид Вы хотите получить в итоге. Необходимости в массивах пока не вижу.

Отправлено: 22:30, 27-04-2018 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Сбор данных с определенного листа большого кол-ва книг на один лист

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Подскажите программу(определение субтитров у большого кол-ва файлов)! Aviator Видео и аудио: обработка и кодирование 0 09-05-2015 21:27
Разное - [решено] открытие большого кол-ва html файлов Alexander_88 Microsoft Windows 8 и 8.1 5 20-04-2015 20:55
CMD/BAT - [решено] Убрать расширение с большого кол-ва файлов cher Скриптовые языки администрирования Windows 4 30-03-2015 16:31
2010 - [решено] Excel 2010 фильтр 1 и 2 листа скопировать на новый лист The Off Microsoft Office (Word, Excel, Outlook и т.д.) 30 03-08-2013 09:18
выбор принтера для печати большого кол-ва фотографий Kibor_G Выбор отдельных компонентов компьютера и конфигурации в целом 0 18-06-2010 12:03




 
Переход