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

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

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

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

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

В этом файле есть все строки, которые содержаться в остальных 19 файлах. Нужно чтобы по нажатию кнопки "Заполнить", строки (из 19 файлов в папке "По_направлениям") у которых совпадет содержимое со строками файла Общий.xlsx по первому столбцу, копировались в файл Общий.xlsx на тоже место.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2015, 14:15
Ответы с готовыми решениями:

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

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

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

6
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 41
23.09.2015, 14:22  [ТС]
Причем в каждом файле есть листы, надо чтобы копирование происходило с учетом листа (т.е. если Sheet1 то и копируем в Sheet1).
0
 Аватар для KoGG
5645 / 1627 / 418
Регистрация: 23.12.2010
Сообщений: 2,448
Записей в блоге: 1
23.09.2015, 16:00
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  [ТС]
Спасибо, но что-то жалуется, говорит ошибка 438 Object doesn't support this property or method и указывает на 11 строчку
0
 Аватар для KoGG
5645 / 1627 / 418
Регистрация: 23.12.2010
Сообщений: 2,448
Записей в блоге: 1
23.09.2015, 16:30
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  [ТС]
Теперь ему что-то от 24 надо)
0
 Аватар для KoGG
5645 / 1627 / 418
Регистрация: 23.12.2010
Сообщений: 2,448
Записей в блоге: 1
23.09.2015, 17:35
Для 1-го варианта
Visual Basic
1
                           .Paste Destination:=sh1.Cells(j, 2)
Для 2-го варианта
Visual Basic
1
                           .Paste Destination:=sh1.Cells(j, 1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.09.2015, 17:35
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru