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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение таблицы из множества файлов .xls - Мир MS Excel

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

Excel 2013
Здравствуйте, прошу помощи в доработке процедуры.

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

1. Вызываю циклом выбранные файлы, но не могу понять открыть этот файл И скопировать оттуда нужную информацию в общею таблицу в файле test.xlsm Например ячейки B7 B9 B10 из открытого файла в b2 c2 d2 файла test.xlsm

Прикладываю файл примера с загружаемыми файлами.

К сообщению приложен файл: primer_test.rar (27.3 Kb)


Изучаю VBA

Сообщение отредактировал joyks - Четверг, 08.01.2015, 11:18
 
Ответить
СообщениеЗдравствуйте, прошу помощи в доработке процедуры.

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

1. Вызываю циклом выбранные файлы, но не могу понять открыть этот файл И скопировать оттуда нужную информацию в общею таблицу в файле test.xlsm Например ячейки B7 B9 B10 из открытого файла в b2 c2 d2 файла test.xlsm

Прикладываю файл примера с загружаемыми файлами.


Автор - joyks
Дата добавления - 08.01.2015 в 11:17
Hugo Дата: Четверг, 08.01.2015, 11:32 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Вариант:
[vba]
Код
Sub Выбор_нескольких_файлов()
     Dim i As Long    '!!!
     Dim il As Long
     Dim a()

     'диалог для выбора файла
     Dim fd As FileDialog    'объектная переменная диалог выбора выбора файлов и папок
     Set fd = Application.FileDialog(msoFileDialogFilePicker)    'тип диалога выбор файла

     fd.AllowMultiSelect = True    'включить выбор множества файлов
     fd.Filters.Clear    'очистить фильтры типов файлов, если он запомнил их
     fd.Filters.Add "Файлы Excel-я", "*.xls;*.xlsx"    'выбор только файлов екселя

     fd.Show    'открыт диалог

     If fd.SelectedItems.Count = 0 Then    'если не выбрали файл то "ошибка"
         MsgBox "Не выбрали файл"
         Exit Sub
     End If

     Application.ScreenUpdating = False

     'Заполняю шапку таблицы
     Range("A1").Value = "№ анкеты"
     Range("B1").Value = "Фамилия"
     Range("C1").Value = "Имя"
     Range("D1").Value = "Отчество"

     For i = 1 To fd.SelectedItems.Count    'перебор имён файлов
         With GetObject(fd.SelectedItems(i))    'открываем
             a = .Sheets(1).[b5:b10].Value    'берём данные в массив
             .Close False    'закрываем без сохранения изменений (их правда и нет)
         End With
         il = Range("A" & Rows.Count).End(xlUp).Row + 1    'определяем последнюю строку
         Cells(il, 1) = a(1, 1)    ' в неё и перекладываем данные из массива
         Cells(il, 2) = a(3, 1)
         Cells(il, 3) = a(5, 1)
         Cells(il, 4) = a(6, 1)
     Next i

     'форматирую всю таблицу
     With Range("A1").CurrentRegion
         .Borders.ColorIndex = 1          'сетка черного цвета
         .Columns.AutoFit                 'автовыравнивание
         With .Rows(1)    'для 1 строки заголовка
             .Font.Bold = True    'жирный шрифт
             .Interior.ColorIndex = 38    'цвет фона
             .HorizontalAlignment = xlCenter  'по центру
         End With
     End With

     Application.ScreenUpdating = True

End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Четверг, 08.01.2015, 12:03
 
Ответить
СообщениеВариант:
[vba]
Код
Sub Выбор_нескольких_файлов()
     Dim i As Long    '!!!
     Dim il As Long
     Dim a()

     'диалог для выбора файла
     Dim fd As FileDialog    'объектная переменная диалог выбора выбора файлов и папок
     Set fd = Application.FileDialog(msoFileDialogFilePicker)    'тип диалога выбор файла

     fd.AllowMultiSelect = True    'включить выбор множества файлов
     fd.Filters.Clear    'очистить фильтры типов файлов, если он запомнил их
     fd.Filters.Add "Файлы Excel-я", "*.xls;*.xlsx"    'выбор только файлов екселя

     fd.Show    'открыт диалог

     If fd.SelectedItems.Count = 0 Then    'если не выбрали файл то "ошибка"
         MsgBox "Не выбрали файл"
         Exit Sub
     End If

     Application.ScreenUpdating = False

     'Заполняю шапку таблицы
     Range("A1").Value = "№ анкеты"
     Range("B1").Value = "Фамилия"
     Range("C1").Value = "Имя"
     Range("D1").Value = "Отчество"

     For i = 1 To fd.SelectedItems.Count    'перебор имён файлов
         With GetObject(fd.SelectedItems(i))    'открываем
             a = .Sheets(1).[b5:b10].Value    'берём данные в массив
             .Close False    'закрываем без сохранения изменений (их правда и нет)
         End With
         il = Range("A" & Rows.Count).End(xlUp).Row + 1    'определяем последнюю строку
         Cells(il, 1) = a(1, 1)    ' в неё и перекладываем данные из массива
         Cells(il, 2) = a(3, 1)
         Cells(il, 3) = a(5, 1)
         Cells(il, 4) = a(6, 1)
     Next i

     'форматирую всю таблицу
     With Range("A1").CurrentRegion
         .Borders.ColorIndex = 1          'сетка черного цвета
         .Columns.AutoFit                 'автовыравнивание
         With .Rows(1)    'для 1 строки заголовка
             .Font.Bold = True    'жирный шрифт
             .Interior.ColorIndex = 38    'цвет фона
             .HorizontalAlignment = xlCenter  'по центру
         End With
     End With

     Application.ScreenUpdating = True

End Sub
[/vba]

Автор - Hugo
Дата добавления - 08.01.2015 в 11:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение таблицы из множества файлов .xls (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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