Здравствуйте. Существуют ли простые способы открывать файлы и папки по маске названий? Кейс следующий - есть директории и файлы:
1. \ЛюбаяПапка\макрос.xlsm
2. \ЛюбаяПапка\YфайлY.xlsx
3. \ЛюбаяПапка\ПапкаY\Подпапка\подфайлY.xlsx
Сначала запускается файл с макросами из п.1, и в нем начинается работа с файлами. Мне нужно макросом открывать файлы из пунктов 2 и 3. Проблема в том, что названия папок и файлов могут меняться (переменное - всё, что обозначено как Y). Представляю я себе это примерно так (звездочки как маска):
Я нашел такое решение, но у меня оно не работает, либо я не смог корректно написать пути и названия:
1. \ЛюбаяПапка\макрос.xlsm
2. \ЛюбаяПапка\YфайлY.xlsx
3. \ЛюбаяПапка\ПапкаY\Подпапка\подфайлY.xlsx
Сначала запускается файл с макросами из п.1, и в нем начинается работа с файлами. Мне нужно макросом открывать файлы из пунктов 2 и 3. Проблема в том, что названия папок и файлов могут меняться (переменное - всё, что обозначено как Y). Представляю я себе это примерно так (звездочки как маска):
Код |
---|
'открытие файла в п.2 PathFolderName = ThisWorkbook.Path () Workbooks.Open Filename:=ThisWorkbook.Path & "\*файл*.xlsx" |
Код |
---|
'открытие файла в п.3 PathFolderName = ThisWorkbook.Path () Workbooks.Open Filename:=ThisWorkbook.Path & "\Папка*\Подпапка\подфайл*.xlsx" |
Я нашел такое решение, но у меня оно не работает, либо я не смог корректно написать пути и названия:
Код |
---|
Sub Openfile() Dim Fso As Object, fs, Fl As Variant Set Fso = CreateObject("Scripting.FileSystemObject") Application.ScreenUpdating = False For Each Fl In Fso.getfolder(ThisWorkbook.Path & "\").Files If Fl.Name Like "RSNOS_*Summary*" Then 'for rawdata file Workbooks.Open ThisWorkbook.Path & "\" & Fl.Name End If Next End Sub |