Всем Доброй ночи! Похожие темы есть но там ссылки на одну книга, а у меня 2 книги. Есть файл "Сводная", в который заносится вся информация по дням, файлы появляются каждый день(но не всегда, иногда задержка 3-4 дня, это очень редко, но имеет место быть), такие файлы называются к примеру "Total 24 Jan" (далее Total). Нужно, чтобы с помощью макроса находился последний файл и открывался, с этим помогли (Большое спасибо ), код:
| Код |
|---|
Sub get_first_created()
Dim myPath$, mask$, f$, i%, t As Date
Dim myFolder As Object, myFile As Object
Dim S As Object
Set S = CreateObject("Shell.Application")
myPath = "C:\Users\Вася\Downloads\" ' директория для поиска
mask = "*ТОРГ-12*.xlsx" ' маска поиска с * и ?
With CreateObject("Scripting.FileSystemObject")
Set myFolder = .GetFolder(myPath)
t = Now ' если ищем самый поздний - убрать эту строку
For Each myFile In myFolder.Files
If myFile.Name Like mask Then
If CDate(myFile.DateCreated) < t Then ' если ищем самый ранний, то <, самый поздний - >
t = CDate(myFile.DateCreated)
f = myFile.Name
p = myFile.Path
End If
End If
Next
On Error Resume Next
S.Open (p)
End With
End Sub
|
Но возникла следующая загвоздка, файл Total последний он мне открывает(скрипт рабочий), но как сделать, чтобы он с файла Total за последнюю дату(который открыл) данные перетянул в файл "Сводная" согласно дате. Важно, чтобы поиск осуществлялся по полю ID(т.к. фамилия может быть одна, но разные ID), т.е. по полю ID нужно перетащить "Выработка", "Часы", "Ранг" в файл "Сводная". Также если в файле "Сводная" нет какого-то ID а в Total есть(это связано с тем, что люди приходят), то выдать ошибку, к примеру "ID 6554688 не найден". Файлы примеры приложил.
Заранее спасибо.
Изменено: - 29.01.2019 10:50:30