Как указать «EOL» в строке поиска VBA? - PullRequest
1 голос
/ 04 августа 2020

[Использование VBA в Microsoft 365 Word]

В VBA я пытаюсь перечислить все файлы в каталоге с расширением .do c. Однако в каталоге могут быть файлы .docx. Использование команды

strFile = Dir("C:\Users\conrad\Desktop\*.doc", vbNormal)

, к сожалению, также захватывает файлы .docx, которые мне не нужны.

Как мне не перехватить файлы .docx?

Ответы [ 2 ]

1 голос
/ 04 августа 2020
Dim fPath, pattern, f

fPath = "C:\Files\"
pattern = "*.doc"

f = Dir(fPath & pattern, vbNormal)
Do While f<>""
    If f Like pattern Then
       'is a .doc file
    End If
    f = Dir()
Loop
1 голос
/ 04 августа 2020

(Вероятно, перебор, но ...)

Вы можете использовать Scripting.FileSystemObject для этого. Обязательно добавьте ссылку на «Microsoft Scripting Runtime» в Tools > References .

Sub Test()
    Dim FSO As Scripting.FileSystemObject
    Set FSO = New Scripting.FileSystemObject
    
    Dim fold As Folder
    Set fold = FSO.GetFolder("C:\Users\conrad\Desktop\")
    
    Dim f As File
    For Each f In fold.Files
        If FSO.GetExtensionName(f) = "doc" Then
            ' do whatever with the file
        End If
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...