С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 41
1

Заполнение файла Excel из других

23.09.2015, 14:15. Показов 1088. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! помогите мне создать макрос, который бы копировал строки в нужное место из других 19 файлов.

Допустим, есть файл Общий.xlsx, в нем имеются строки
такого вида
Заполнение файла Excel из других

В этом файле есть все строки, которые содержаться в остальных 19 файлах. Нужно чтобы по нажатию кнопки "Заполнить", строки (из 19 файлов в папке "По_направлениям") у которых совпадет содержимое со строками файла Общий.xlsx по первому столбцу, копировались в файл Общий.xlsx на тоже место.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2015, 14:15
Ответы с готовыми решениями:

Заполнение DataGridView из файла Excel
Добрый день всем. Наконец то нашел код чтоб открылся Excel в DataGridView. Но он открывает только...

Как сделать чтобы Заполнение одного значения формы вызывало заполнение множества других
Народ помогите чтобы при выставлении значения в ячейке формы КПКНазв (основана на табл.Договора) в...

Программное заполнение регистров из файла excel
Здравствуйте! Я заполняю регистры данными из файла excel в 8.2 обычное приложение. Написала такой...

Чтение txt-файла и заполнение таблицы Excel
Добрый день, есть текстовый файл. Из него вынимаем данные, и записываем в excel таблицу. Вопрос как...

6
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 41
23.09.2015, 14:22  [ТС] 2
Причем в каждом файле есть листы, надо чтобы копирование происходило с учетом листа (т.е. если Sheet1 то и копируем в Sheet1).
0
5613 / 1596 / 415
Регистрация: 23.12.2010
Сообщений: 2,397
Записей в блоге: 1
23.09.2015, 16:00 3
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
32
33
34
Option Compare Text
Sub Сборка_по_идентификаторам()
    Const ColIdent = 1 ' Колонка идентификаторов совпадения
    Dim i&, j&, MyPath$, MyFileName$, LastRow1&, LastRow2&, LastCol&, Ident, A, B
    Dim wb1 As Workbook, wb2 As Workbook, sh1 As Worksheet, sh2 As Worksheet
    MyPath = "C:\TEMP\По_направлениям\" ' Обрабатываемая папка (не должна содержать сборный файл).
    Set wb1 = ActiveWorkbook
    MyFileName = Dir(MyPath & "*.xls*")
    Do Until MyFileName = ""
        Set wb2 = Workbooks.Open(FileName:=MyPath & MyFileName, UpdateLinks:=0, ReadOnly:=True)
        For Each sh1 In wb1
            Set sh2 = wb2.Worksheets(sh1.Name)
            LastRow2 = sh2.Cells(sh2.Rows.Count, ColIdent).End(xlUp).Row
            B = Range(sh2.Cells(1, ColIdent), sh2.Cells(LastRow2, ColIdent)).Value
            With sh1
                LastRow1 = .Cells(.Rows.Count, ColIdent).End(xlUp).Row
                LastCol = .UsedRange.Columns.Count - .UsedRange.Column + 1
                A = Range(.Cells(1, ColIdent), .Cells(LastRow1, ColIdent)).Value
                For i = 1 To LastRow2
                    Ident = Trim$(B(i, 1))
                    Range(sh2.Cells(i, 2), sh2.Cells(i, LastCol)).Copy
                    For j = 1 To LastRow1
                        If Trim$(A(j, 1)) = Ident Then
                           .Cells(j, 2).Paste
                           Exit For
                        End If
                    Next j
                Next i
            End With
        Next sh1
        wb2.Close 0
        MyFileName = Dir
    Loop
End Sub
1
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 41
23.09.2015, 16:27  [ТС] 4
Спасибо, но что-то жалуется, говорит ошибка 438 Object doesn't support this property or method и указывает на 11 строчку
0
5613 / 1596 / 415
Регистрация: 23.12.2010
Сообщений: 2,397
Записей в блоге: 1
23.09.2015, 16:30 5
11-я:
Visual Basic
1
        For Each sh1 In wb1.Worksheets
Случай, если менять колонку идентификатора:
Кликните здесь для просмотра всего текста
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
32
33
34
Option Compare Text
Sub Сборка_по_идентификаторам()
    Const ColIdent = 1 ' Колонка идентификаторов совпадения
    Dim i&, j&, MyPath$, MyFileName$, LastRow1&, LastRow2&, LastCol&, Ident, A, B
    Dim wb1 As Workbook, wb2 As Workbook, sh1 As Worksheet, sh2 As Worksheet
    MyPath = "C:\TEMP\По_направлениям\" ' Обрабатываемая папка (не должна содержать сборный файл).
    Set wb1 = ActiveWorkbook
    MyFileName = Dir(MyPath & "*.xls*")
    Do Until MyFileName = ""
        Set wb2 = Workbooks.Open(FileName:=MyPath & MyFileName, UpdateLinks:=0, ReadOnly:=True)
        For Each sh1 In wb1.Worksheets
            Set sh2 = wb2.Worksheets(sh1.Name)
            LastRow2 = sh2.Cells(sh2.Rows.Count, ColIdent).End(xlUp).Row
            B = Range(sh2.Cells(1, ColIdent), sh2.Cells(LastRow2, ColIdent)).Value
            With sh1
                LastRow1 = .Cells(.Rows.Count, ColIdent).End(xlUp).Row
                LastCol = .UsedRange.Columns.Count - .UsedRange.Column + 1
                A = Range(.Cells(1, ColIdent), .Cells(LastRow1, ColIdent)).Value
                For i = 1 To LastRow2
                    Ident = Trim$(B(i, ColIdent))
                    Range(sh2.Cells(i, 1), sh2.Cells(i, LastCol)).Copy
                    For j = 1 To LastRow1
                        If Trim$(A(j, ColIdent)) = Ident Then
                           .Cells(j, 1).Paste
                           Exit For
                        End If
                    Next j
                Next i
            End With
        Next sh1
        wb2.Close 0
        MyFileName = Dir
    Loop
End Sub
0
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 41
23.09.2015, 16:44  [ТС] 6
Теперь ему что-то от 24 надо)
0
5613 / 1596 / 415
Регистрация: 23.12.2010
Сообщений: 2,397
Записей в блоге: 1
23.09.2015, 17:35 7
Для 1-го варианта
Visual Basic
1
                           .Paste Destination:=sh1.Cells(j, 2)
Для 2-го варианта
Visual Basic
1
                           .Paste Destination:=sh1.Cells(j, 1)
0
23.09.2015, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2015, 17:35
Помогаю со студенческими работами здесь

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

VSTO книга Excel. Заполнение list в Combobox из Range Excel
Добрый вечер! Задача простая, но запуталась в синтаксисе. Есть add-in VSTO уровня документа. В...

Заполнение шаблона excel из DBGrid при этом сохранив имеющиеся данные в excel
Здравствуйте. у меня есть список который при нажатии на кнопку в делфи заполнятся в excel. Как мне...

Студгородок. Заполнение Наименования физлица из других полей
Доброго времени суток, подскажите как сделать чтоб стандартное поле наименование автоматически...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru