У нас есть ежедневный отчет, отправляемый в папку, а затем на следующий день наш координатор сгенерирует сводку по запросу данных, соединяющую самый обновленный файл с мастер-файлом.
Но файл имеет метку времени, и мы не смогли найти способ включить метку времени во встроенный запрос данных Excel.
Я использую Excel VBA, чтобы найти самый обновленный отчет и изменить имя файла на стандартное имя. Вот мой код:
Sub ChangeName()
Dim folderPath As String, tableName As String, latestTblName As String
Dim latestModified As Date, modifiedDate As Date
folderPath = " F:\Purchasing\Supply Chain Reports\IMAP Reports\"
tableName = Dir(folderPath & "*.xlsx")
Do While tableName <> vbNullString
modifiedDate = FileDateTime(folderPath & tableName)
If latestModified < modifiedDate Then
latestModified = modifiedDate
latestTblName = tableName
End If
tableName = Dir()
Loop
Workbooks.Open folderPath & latestTblName
Rows("0:6").Delete
Kill "F:\Purchasing\Supply Chain Reports\IMAP Reports\ InvoiceQueryReport.xlsx"
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
MyOldName = ActiveWorkbook.FullName
MyNewName = "InvoiceQueryReport.xlsx" & ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:="F:\Purchasing\Supply Chain Reports\IMAP Reports\" & MyNewName
Kill MyOldName
End Sub
Проблема в том, что, во-первых, у меня была ошибка в TableName
, также при сохранении нас мастер-файл сохранялся как стандартное имя, а не отчет: (
Если бы кто-нибудь мог дать мне какие-либо предложения, это было бы потрясающе!