Я ищу код VBA Excel, который возвращает имя файла из путей (я упомяну их).
В файле Excel один из столбцов будет иметь имена файлов (например: - lgd_00, lgf_01), и эти файлы будут находиться в путях (5 или 6 путей), которые я упомяну. Код должен искать имя файла в пути и извлекать последнее имя файла и копировать рядом с ним.
например, в a1 - a20 есть имена файлов. Рассмотрим, что у "a1" есть "lgd_00", но в указанном мной пути будет файл "lgd_00", а после обновления он станет "lgd_01". Здесь «lgd_01» - самый последний файл, поэтому код должен извлечь «lgd_01» и скопировать его в столбец (b1) «lgd_00» в excel. если «lgd_00» является последним файлом, он должен скопировать его.
, возможно, приложенное поможет.
Благодарим вас за помощь.
Спасибо
Sub LatestFileWithName()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim strPath As String
Dim strName As String
Dim varDate As Variant
Dim strFind As String
Dim r As Long, ws As Worksheet
Set ws = Sheets("Sheet1")
strPath = ""
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strPath)
For r = ws.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
If ws.Range("A" & r).Value = Left(objectFile, 20) Then
strFind = ws.Range("A" & r).Value
For Each objFile In objFolder.Files
If InStr(1, objFile.Name, strFind, vbTextCompare) Then
If objFile.DateLastModified > varDate Then
strName = objFile.Name
varDate = objFile.DateLastModified
If Len(strName) = 0 Then
strName = "None found"
Else
strName = strName & " - is latest file - " & varDate
End If
ws.Range("B" & r).Value = strName
r = r + 1
End If
End If
Next 'objFile
End If
Next r
Set objFSO = Nothing
Set objFolder = Nothing
Set objFile = Nothing
End Sub