Найдите указанную строку c в имени файла и назначьте ее переменной - PullRequest
0 голосов
/ 02 марта 2020

Я загружаю файлы (вложения) из электронной почты. Поэтому обычно в папке Archive находится около 10 файлов (я обрабатываю файлы и удаляю их). Файлы имеют разные имена. Однако один файл всегда имеет имя в формате File XS8456675 2020-11-24. Я пытаюсь найти этот файл и назначить переменную XS8456675 для FileName. XS8456675 всегда имеет 2 буквы перед и цифры после. Также он прячется между Word space & space Дата .

Кто-нибудь может дать мне несколько советов, какие команды мне следует использовать для этого?

Вот мой код, который я получил до сих пор:

Sub findfilename()

    Dim FileInFolder As Object
    Dim objFiles As Object
    Dim fso As Object
    Dim strFolderPath As String
    Dim FileName As String

    Set fso = CreateObject("Scripting.FileSystemObject")

    strFolderPath = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
    Set objFiles = fso.GetFolder(strFolderPath & "\Archive\").Files

        For Each FileInFolder In objFiles

            If InStr(fso.GetBaseName(FileInFolder), "XS") > 0 Then
                MsgBox ("found")
            End If

        Next FileInFolder

End Sub

Кажется, код находит файл в папке. Как получить XS8456675 из File XS8456675 2020-11-24 из найденного файла?

1 Ответ

1 голос
/ 02 марта 2020

Пожалуйста, используйте следующий код:

Объявите две новые переменные

Dim strSplit As Variant, strNeeded As String

, а затем замените существующую For Each FeleInFolder... на следующую:

  For Each FileInFolder In objFiles
     strSplit = Split(fso.GetBaseName(FileInFolder), " ")
     strNeeded = strSplit(1)
     MsgBox strNeeded 
  Next FileInFolder
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...