2015-10-01 5 views
2

Я создал код, чтобы дать мне путь и там имена для всех файлов в папке, чтобы преуспеть. Но моя проблема заключается в том, что он дает мне имена файлов всех файлов в этой папке. Я просто хочу искать и извлекать имена только pdf-файлов, чтобы преуспеть.экспортировать имена файлов PDF в папку excel

Вот что у меня есть:

Sub Example1() 
Dim objFSO As Object 
Dim objFolder As Object 
Dim objFile As Object 
Dim i As Integer 

'Create an instance of the FileSystemObject 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
'Get the folder object 
Set objFolder = objFSO.GetFolder(Range("H1").Value) 

i = 1 

'loops through each file in the directory and prints their names and path 

For Each objFile In objFolder.Files 
'print file path 
Cells(i + 3, 2) = objFile.Path 
i = i + 1 
Next objFile 

End Sub 
+0

Вместо этого используйте 'dir()'. – findwindow

+1

Вам нужно будет добавить оператор 'If', который смотрит на' right' 3 символа в имени 'objfile'. Если он равен «pdf», то делайте свой материал, иначе ничего не делайте. –

+0

Где именно мне нужно внести изменения. Если вы поможете в этом, это будет здорово. – Striker

ответ

7

В соответствии с комментариями. Вы должны проверить, если последние три символа «PDF»

Так что в вашем for цикле добавить, если заявление

For Each objFile In objFolder.Files 
    if right(objFile.Path,3) = "pdf" then 
     'print file path 
     Cells(i + 3, 2) = objFile.Path 
     i = i + 1 
    end if 
Next objFile 
+0

Спасибо .. Это сработало! – Striker

0

Это должно работать:

Sub Find_PDF() 

Dim FileToCheck As String, FilePath As String, FileWildCard As String 

FilePath = "c:\YOUR FILE PATH\" 
FileWildCard = "*.pdf" 

FileToCheck = Dir(FilePath & FileWildCard) 

Do While FileToCheck <> "" 

    i = i + 1 

    Sheets("Sheet1").Range("A" & i).Value = FileToCheck 

    FileToCheck = Dir() 

Loop 


End Sub 
0

Это не бесплатная услуга кодирования, но я бы ответить на этот вопрос так или иначе:

For Each objFile In objFolder.Files 
    if right(objFile.Path,3) = "pdf" then 
     'print file path 
     Cells(i + 3, 2) = objFile.Path 
     i = i + 1 
    end if 
msgbox ("Answer are here dont troll on someone") 
Next objFile 
Смежные вопросы