Всем доброго времени суток!
Не силён в VBA, но периодически приходится в него окунаться, для решения рабочих задач.
В очередной раз прошу специалистов, экспертов и просто добрых людей помочь с решением задачи.
Суть следующая есть 2 файла Sale+ и Связка (Имена файлов могут меняться, например изменяется дата файла).
В файле Sale+ находятся данные, где к одному ID подтянут один Code, и дальше заполнена некая информация.
В файле Связка есть связки всех кодов с ID (один ID может иметь несколько разных кодов).
Что требуется сделать:
Файл Sale+ будет открываться менеджером вручную.
Далее, при выполнении макроса появляется диалоговое окно с выбором файла, из которого необходимо взять новые данные (Связка).
Добавить в файл Sale+, ниже основных данных, данные из таблицы Связка.
Проверить наличие совпадений ID из Sale+ с ID из Связка, при совпадении ID скопировать все данные в строке, начиная со столбца "C" и до последнего заполненного.
Если совпадение не найдено, удалить запись, в таблице Sale+ добавленную ниже основных данных (т.е. вставленный ID и Code из файла Связка)
После всех операций закрыть файл Связка.
На текущий момент реализован следующий код. Который копирует все данные из файла выбранного в диалоговом окне и вставляет их ниже основных данных в файле Sale+
Не силён в VBA, но периодически приходится в него окунаться, для решения рабочих задач.
В очередной раз прошу специалистов, экспертов и просто добрых людей помочь с решением задачи.
Суть следующая есть 2 файла Sale+ и Связка (Имена файлов могут меняться, например изменяется дата файла).
В файле Sale+ находятся данные, где к одному ID подтянут один Code, и дальше заполнена некая информация.
В файле Связка есть связки всех кодов с ID (один ID может иметь несколько разных кодов).
Что требуется сделать:
Файл Sale+ будет открываться менеджером вручную.
Далее, при выполнении макроса появляется диалоговое окно с выбором файла, из которого необходимо взять новые данные (Связка).
Добавить в файл Sale+, ниже основных данных, данные из таблицы Связка.
Проверить наличие совпадений ID из Sale+ с ID из Связка, при совпадении ID скопировать все данные в строке, начиная со столбца "C" и до последнего заполненного.
Если совпадение не найдено, удалить запись, в таблице Sale+ добавленную ниже основных данных (т.е. вставленный ID и Code из файла Связка)
После всех операций закрыть файл Связка.
На текущий момент реализован следующий код. Который копирует все данные из файла выбранного в диалоговом окне и вставляет их ниже основных данных в файле Sale+
| Код |
|---|
Sub Копирование_данных()
Dim wb As Workbook
Dim aw As Workbook
Set aw = Workbooks.Open(ActiveWorkbook.FullName)
'On Error GoTo Inform
' открываем книгу откуда будем копировать данные
Set wb = Workbooks.Open(Application.GetOpenFilename(fileFilter:="Книги Excel (*.xls*), *.xls*", Title:="Введите путь к файлу данных"))
Set SourceSht = wb.Worksheets(1)
' определяем последнюю заполненную ячеку
LastRow = SourceSht.Cells(Rows.Count, "A").End(xlUp).Row
SourceSht.Range("A2:A" & LastRow).Copy
LastRow_S_B = aw.ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0)
LastRow_S_A = aw.ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
aw.Worksheets(1).Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
SourceSht.Range("B2:B" & LastRow).Copy
aw.ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Exit Sub
Inform:
'Вывести информационное окно с сообщением об ошибке
MsgBox "Окно закрыто или нажата кнопка " _
& Chr(34) & "Отмена" & Chr(34) & "!"
If fileopenname <> False Then wb.Close (False)
End Sub |
Ку-Ку мой мальчик!..