Поиск файла в папке - VBA
Формулировка задачи:
В папке с:\отчеты лежат отчёты по дням:
"отчёт за 16.05.2017".xls
"отчёт за 15.05.2017".xls
"отчёт за 14.05.2017".xls
И т.д.
Пишу макрос, который будет искать по маске: "отчёт за " & Date - x".xls" , за какую дату был записан последний отчёт, то есть 'x'. Перерыв в формировании отчёта может достигать 5 дней.
Что мешает: не могу понять, как выйти из двух циклов после первого вхождения.
У меня получается так, или не останавливается, цикл X и выдаёт последнее, а не первое совпадение, или наоборот не найдя х=1 не переходит к x=2.
Листинг программы
- Sub
- fail = Dir ("с:\отчеты\отчёт за *.xls")
- Do while fail <> " "
- Cells (r, 1) = fail
- r = r + 1
- fail = Dir
- Loop
- for x=1 to 5
- f1 = "отчёт за " & Date - x & ".xls"
- For r = 1 To WorksheetFunction.CountA(Range("A:A"))
- If f1 = Cells(r, 1) Exit For
- End If
- Next r
- Exit For
- Next x
- MsgBox (x)
- End Sub
Решение задачи: «Поиск файла в папке»
textual
Листинг программы
- Sub vvv()
- fail = Dir("с:\отчеты\отчёт за *.xls")
- Do While fail <> " "
- Cells(r, 1) = fail
- r = r + 1
- fail = Dir
- Loop
- For x = 1 To 5
- f1 = "отчёт за " & Date - x & ".xls"
- For r = 1 To WorksheetFunction.CountA(Range("A:A"))
- If f1 = Cells(r, 1) Then n = 1: Exit For
- Next r
- If n = 1 Then Exit For
- Next x
- MsgBox (r)
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д