Подскажите, пожалуйста, как найти файл с наибольшим числом в имени (в моем случае дата yymmdd) с определенными символами в имени (aaa,bbb или ccc). Зеленым, то что должна возвращать функция, желтое то что сейчас возвращает.
[/vba]В архиве экселевский файл с функцией и папка тест с несколькими текстовыми файлами-примерами.
Доброго времени,
Подскажите, пожалуйста, как найти файл с наибольшим числом в имени (в моем случае дата yymmdd) с определенными символами в имени (aaa,bbb или ccc). Зеленым, то что должна возвращать функция, желтое то что сейчас возвращает.
Option Explicit Public Function FindMostRecentFile(code) Dim fpath As String Dim fTXT As String Dim dateF As Date Dim max As Date Dim sMax As String fpath = ThisWorkbook.Path & "\test\" fTXT = Dir(fpath & "*" & code & ".txt") max = 0 Do While fTXT <> "" dateF = DateSerial(CInt(Left(fTXT, 2)), CInt(Mid(fTXT, 3, 2)), CInt(Mid(fTXT, 5, 2))) If dateF > max Then max = dateF sMax = fTXT End If fTXT = Dir Loop FindMostRecentFile = sMax End Function
[/vba] Ваша ошибка в том, что вы файлы не сравнивали, а выводился первый
Добрый день. Почти как у Марины) [vba]
Код
Option Explicit Public Function FindMostRecentFile(code) Dim fpath As String Dim fTXT As String Dim dateF As Date Dim max As Date Dim sMax As String fpath = ThisWorkbook.Path & "\test\" fTXT = Dir(fpath & "*" & code & ".txt") max = 0 Do While fTXT <> "" dateF = DateSerial(CInt(Left(fTXT, 2)), CInt(Mid(fTXT, 3, 2)), CInt(Mid(fTXT, 5, 2))) If dateF > max Then max = dateF sMax = fTXT End If fTXT = Dir Loop FindMostRecentFile = sMax End Function
[/vba] Ваша ошибка в том, что вы файлы не сравнивали, а выводился первыйsboy