Страницы: 1
RSS
Excel VBA Копирование вставка данных из одной папки с файлами в другую папку с файлами, Из одной папки по циклу открываем файлы, копируем данные из ячеек, потом по поиску по именам файлов из втрой папки вставляем в них данные
 
Добрый день!

Есть задача.

1) Имеется в наличии 2 папки: называются Papka1 и Papkа2
2) Список файлов Papka1:
Апельсин Д-00082
Помидор (СЦ)_Уд-0000000087
Яблоко (СЦ)_Пр_231

3) Список  файлов Papka2:
Tr27 Апельсин
помидор UZ-96
Яблоко АА7

4) Имеется таблица соотнесения ячеек файлов из Papka1 и Papka2, это соотнесение статично, выглядит так:
Papka1, файл Апельсин Д-00082     Papka2, файл  Tr27 Апельсин
                                 Ячейка С2 = Ячейка D2
                                 Ячейка С4 = Ячейка D3
                                 Ячейка С5 = Ячейка D4
                                 Ячейка С9 = Ячейка D5
Для файлов содержащих в название слово "Помидор" и "помидор" действует такое же правило копирования\вставки из Papka1 в Papka2.
5) Количество файлов в Papka 1 равно количеству файлов в Papka2,
6) Данные из файла Яблоко в Papka1 копируем и вставляем в файл Апельсин Papka2. Имена файлов немного отличаются.
Т.е. из одной формы установленного образца делаем другую форму установленного образца.

Файлов несколько сотен на самом деле.

7) Для того чтобы копировать ячейки из Papka1 в Papka2 пытался применить такой код:


Код
Sub KopirovanieIVstavka()
Dim s As String, p As String, MyFiles As String, MyFiles2 As String, MyVal As Range
 
Application.DisplayAlerts = False
Application.ScreenUpdating = False
 
MyFiles = "C:\Users\Users\Desktop\Papka1\"
s = Dir(MyFiles & "*.xls")
Do While s <> ""
    With Workbooks.Open(MyFiles & s)
 
' Как оформить поиск по именам файлов в Papka2 ? 
x = Left(.Dir(Myfiles, InStr(1, Dir(MyFiles, ",") - 1)
 
    ' Address to copy file
        Set MyVal = Dir(MyFiles2& "*.xls").Find(x)
        If Not MyVal Is Nothing Then
 
        ' To copy file            To insert file
       Dir(MyFiles).Range("С2") = Dir(MyFiles2).Range("D2")
        Dir(MyFiles).Range("С4") = Dir(MyFiles2).Range("D3")
        Dir(MyFiles).Range("С5") = Dir(MyFiles2).Range("D4")
        Dir(MyFiles).Range("С9") = Dir(MyFiles2).Range("D5")
        .Close SaveChanges:=True
        End If
    End With
    s = Dir
Loop
 
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
End Sub

Прошу строго не судить, по образованию не программист))

Код не работает.

В разделе "Вопросы по Microsoft Excel" создал тему с этой же проблемой. Пользователь Nordheim посоветовал посмотреть в сторону FileSystemObject. Но я что-то не смог разобраться.
Цена 700 руб. Желательно исправить имеющийся выше код, так как его принцип отдаленно понимаю.Прошу добавить еще комментарии в код, чтобы знать что откуда брать.
Изменено: Spec - 02.09.2020 08:03:38
 
Добрый день!
Давайте попробуем разобраться. Пишу в личку...
В работе...
Оплачено, сделано.
Изменено: Михаил Лебедев - 03.09.2020 13:32:04
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Михаил Лебедев,Оригинальный файл для соотнесения. Предыдущий пример для соотнесения был учебный. В личных сообщениях так и не понял как прикреплять файл.
 
Михаил Лебедев,Можно ориентироваться на учебные таблицы соотнесения, так как там использовал столбец C и D, чтобы было более понятно.   Но оригинальная таблица соотнесения использует только столбец F в обоих папках. И там 62 ячейки с папки 1  соотносятся с 62 ячейками с папки 2.
Изменено: Spec - 02.09.2020 09:29:57
 
Заказ принят в работу одним пользователем. Просим не откликаться на заказ. Спасибо за понимание.
Изменено: Spec - 02.09.2020 13:16:04
 
Цитата
Spec написал:
Заказ принят в работу одним пользователем
Кто этот пользователь? Почему он не отметился в теме?
 
Цитата
Юрий М написал:
Кто этот пользователь?
Это я :)  
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Ну и формулировки у заказчика )) Ведь можно же было написать имя исполнителя. А то "одним пользователем" ))
 
Цитата
Юрий М написал:
Ну и формулировки у заказчика
Ну, они не регламентируется же )) Человек хотел, как лучше.

PS

Работу сдал, деньги получил.
Изменено: Михаил Лебедев - 22.09.2020 07:45:24
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Спасибо, задача решена. Тему можно закрыть.
Страницы: 1
Наверх