Задать вопрос
@ti_zh_vrach
Бывший аптекарь.

Как с помощью VBA открыть файл с динамическим именем?

Собрать рабочий ответ в гугле не получилось.
У меня есть макрос, который обрабатывает файл с текущей датой в названии:
Dim my_file As Worksheet
Set my_file = Workbooks.Open(Filename:=ThisWorkbook.Path & "\important file" & Date & ".xlsx").Sheets(1)
'do anything
Workbooks("important file" & Date & ".xlsx").Close SaveChanges:=False

Как можно открыть файл с любым набором символов вместо Date? А если попадётся .xls?
  • Вопрос задан
  • 784 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@ti_zh_vrach Автор вопроса
Бывший аптекарь.
Спустя годы я познал истину.

Надо валидировать имя файла через оператор Like:
Dim my_file As Worksheet, file_name As String

file_name = "important file _some_symbols_ .xlsx"

If file_name Like "important file*.xlsx" Or file_name Like "important file*.xls" Then
    Set my_file = Workbooks.Open(Filename:=ThisWorkbook.Path & file_name).Sheets(1)
    'do anything
    Workbooks(file_name).Close SaveChanges:=False
End IF

Подробно тут.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
В смысле попадется? Откуда эти файлы берутся? Или Вы наугад берете название файла и пытаетесь открыть?
Поясните чуть полнее пожалуйста.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы