Получить только файлы PDF - PullRequest
3 голосов
/ 06 апреля 2020

У меня небольшая проблема с моим кодом в VBA. Как я могу исключить другой файл расширения, например .txt, .csv, .xlsx, and .xlsm, поэтому я могу выбрать только в моем For Each Loop только расширение .PDF.

Я уже искал эту проблему и уже пытался, но решение не применимо в моем коде.

Это мой код:

Option Explicit

Sub GetPDFFile()
Dim mainWs As Worksheet
Dim pdfPath As Variant, excelPath As Variant
Dim fileSystemObject As New fileSystemObject
Dim getFolderPath As Folder
Dim getFile As file
Dim wb As Workbook

Set mainWs = ThisWorkbook.Sheets("Main")

pdfPath = mainWs.Range("C7").Value
excelPath = mainWs.Range("C8").Value

'Set all variable to null
Call SetNothing

If pdfPath = "" Then
    Call MsgActionInvalid("Please input PDF File Folder.")
ElseIf excelPath = "" Then
    Call MsgActionInvalid("Please input Output Folder Location.")
Else
    Set getFolderPath = fileSystemObject.getFolder(pdfPath)

    Set wa = CreateObject("word.application")

    If cntFiles <> 0 Then

    For Each getFile In getFolderPath.Files

         `Other code............
    Next
End Sub

Я получаю все файлы внутри папка, которую я выбрал. Так что внутри For Each Loop я получаю отладочное сообщение, потому что файл не .PDF.

Есть какие-нибудь идеи по этому поводу, ребята?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 06 апреля 2020

Используйте свойство Type объекта File наподобие getFile.Type, чтобы узнать его тип. И используйте оператор If, чтобы запустить Other code............ только для файлов нужного типа.


В качестве альтернативы используйте UCase(getFile) Like "*.PDF", чтобы убедиться, что он не чувствителен к регистру. В противном случае вы активируете только .PDF, но не .Pdf или .pdf или .pDf или что-либо еще.

Что совпадает с UCase(Right$(getFile, 4)) = ".PDF"

2 голосов
/ 06 апреля 2020

Вы должны использовать Right, чтобы проверить расширение файла. Что-то вроде:

For Each getFile In getFolderPath.Files
    If Right(getFile, 4) = ".pdf" Then
        ' have found a PDF extension............
    End If
Next

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...