2015-07-14 3 views
0

Я пытаюсь создать список имен файлов в папке для справки, следующий код листинг всех имен файлов с расширением Filename.pdfКак получить список имен файлов в папке

как исключить расширение из файла имя? .pdf

Option Explicit 
Sub GetFileName() 
    Dim xlRow As Long 
    Dim sDir As String 
    Dim FileName As String 
    Dim sFolder As String 

    sFolder = "C:\Temp\" 

    With Application.FileDialog(msoFileDialogFolderPicker) 
     .InitialFileName = Application.DefaultFilePath & "\" 
     .Title = "Please select a folder" 
     .InitialFileName = sFolder 
     .Show 
     If .SelectedItems.Count <> 0 Then 
      sDir = .SelectedItems(1) & "\" 
      FileName = Dir(sDir, 7) 

      Do While FileName <> "" 
       Range("A1").Offset(xlRow) = FileName 
       xlRow = xlRow + 1 
       FileName = Dir 
      Loop 
     End If 
    End With 
End Sub 

ответ

2

Я не 100% уверен, что вы просите, но я думаю, что

If FileName Like "*.pdf" Then 
    Range("A1").Offset(xlRow) = Mid(FileName,1,Len(FileName)-4) 
End If 

может быть то, что вы после этого.

1

Если само имя файла не содержит период, вы можете использовать Split():

Option Explicit 
Sub GetFileName() 
    Dim xlRow As Long 
    Dim sDir As String 
    Dim FileName As String 
    Dim sFolder As String 

    sFolder = "C:\Temp\" 

    With Application.FileDialog(msoFileDialogFolderPicker) 
     .InitialFileName = Application.DefaultFilePath & "\" 
     .Title = "Please select a folder" 
     .InitialFileName = sFolder 
     .Show 
     If .SelectedItems.Count <> 0 Then 
      sDir = .SelectedItems(1) & "\" 
      FileName = Dir(sDir, 7) 

      Do While FileName <> "" 
       Range("A1").Offset(xlRow) = Split(FileName, ".")(0) 
       xlRow = xlRow + 1 
       FileName = Dir 
      Loop 
     End If 
    End With 
End Sub 
+1

Что делать, если файл является чем-то вроде «weird.but.legal.pdf»? –

+1

@JohnColeman В этом случае мой метод потерпит неудачу. –

+1

можно утверждать, что любой, кто использует имена файлов, как это, заслуживает того, чтобы их программы выходили из строя –

Смежные вопросы