Поиск файла в папке - VBA

Узнай цену своей работы

Формулировка задачи:

В папке с:\отчеты лежат отчёты по дням: "отчёт за 16.05.2017".xls "отчёт за 15.05.2017".xls "отчёт за 14.05.2017".xls И т.д. Пишу макрос, который будет искать по маске: "отчёт за " & Date - x".xls" , за какую дату был записан последний отчёт, то есть 'x'. Перерыв в формировании отчёта может достигать 5 дней. Что мешает: не могу понять, как выйти из двух циклов после первого вхождения. У меня получается так, или не останавливается, цикл X и выдаёт последнее, а не первое совпадение, или наоборот не найдя х=1 не переходит к x=2.
Листинг программы
  1. Sub
  2. fail = Dir ("с:\отчеты\отчёт за *.xls")
  3. Do while fail <> " "
  4. Cells (r, 1) = fail
  5. r = r + 1
  6. fail = Dir
  7. Loop
  8. for x=1 to 5
  9. f1 = "отчёт за " & Date - x & ".xls"
  10. For r = 1 To WorksheetFunction.CountA(Range("A:A"))
  11. If f1 = Cells(r, 1) Exit For
  12. End If
  13. Next r
  14. Exit For
  15. Next x
  16. MsgBox (x)
  17. End Sub

Решение задачи: «Поиск файла в папке»

textual
Листинг программы
  1. Sub vvv()
  2. fail = Dir("с:\отчеты\отчёт за *.xls")
  3. Do While fail <> " "
  4.   Cells(r, 1) = fail
  5.   r = r + 1
  6.   fail = Dir
  7. Loop
  8. For x = 1 To 5
  9.   f1 = "отчёт за " & Date - x & ".xls"
  10.       For r = 1 To WorksheetFunction.CountA(Range("A:A"))
  11.          If f1 = Cells(r, 1) Then n = 1: Exit For
  12.       Next r
  13.   If n = 1 Then Exit For
  14. Next x
  15. MsgBox (r)
  16. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут