Я пытаюсь написать функцию в своем коде, которая позволяет мне искать конкретный файл по его имени.Функция работает, но теперь структура имени изменилась, и это вызвало у меня проблемы.
Мой код представлен в виде макросов, управляющих документом Word.Этот документ получает информацию из другой программы и помещает ее в поля формы в документе word.Затем мой код берет «значение» полей формы и использует их для поиска в конкретной папке файла .txt с именем, совпадающим с сохраненным значением из полей формы.
Теперь имя .txt былоизмененное имя будет иметь некоторую дополнительную информацию, к которой у меня нет доступа через слово document.
Пример: W_X_Y_Z.txt Где Y и Z доступны в полях формы документа и могут быть доступны, ноW и X мне неизвестны.
Нужно решить: так что мне нужно найти способ игнорировать W и X и основывать поиск только на Y и Z.
Идеи: у меня есть идея найти файл с такой структурой, как ?? _ ?? _ Y_Z.txt, но я не уверен, как это будет работать, как в "??"включать числа, если оно находится в строке и содержит "??"означают только 2 неизвестных символа или любое количество?Если только два, есть ли способ определить неизвестную строку, где оба символа неизвестны и количество символов?
Вторая идея - использовать разделитель на _
и каким-то образом выяснить, как я могу сказать,макрос, как игнорировать все после второго _
.
Любые идеи или рекомендуемые исследования, которые я должен сделать, приветствуются.
Спасибо.
Я будупопробуйте добавить немного кода сейчас, но имейте в виду, что я унаследовал много кода в этом документе, и поэтому я не знаю точно, что делает каждая деталь, поэтому я избегал набирать код.
Код на данный момент:
ActiveDocument.FormFields("Remissnummer").Select
Remiss = Selection.Text
Selection.Collapse Direction:=wdCollapseStart
ActiveDocument.FormFields("Personid").Select
strTmpPersonnr = Selection.Text
intNumCharsPersNr = Len(strTmpPersonnr)
Selection.Collapse Direction:=wdCollapseStart
strFileName = strTmpPersonnr
p_strFileReportPath = "G:\HMC\Fysiologiska kliniken\Eko\Export\"
strImportFile = p_strFileReportPath & "*" & strFileName & "_" & Remiss & strFileExt
If Len(Dir$(strImportFile)) = 0 Then
MsgBox "Error"
Else
'starts importing values from the file
Этот метод работал, когда имя файла имело известную структуру, т.е. только Y_Z.txt Теперь, хотя структура изменилась, как я объяснил выше, две новые переменные неизвестны, могут быть что угодно из буквна цифры.
Я пытался с:
Ignore = "*"
strImportFile = p_strFileReportPath & Ignore & "_" & Ignore & "_" & strFileName & "_" & Remiss & strFileExt
, но он просто замерз, и при переходе в диспетчер задач вы могли видеть все больше и больше памяти выделяетсяк слову ... я остановил его через 10 минут.
Так что я догадываюсь, что не могу объяснить неизвестные части имени файла с помощью "*", но я вроде как потерян.