/ / Listet Dateinamen mit Links in Excel auf - Excel, Excel-Vba, Verzeichnis, Verzeichnisstruktur, VBA

Listet Dateinamen mit Links in Excel auf - Excel, Excel-Vba, Verzeichnis, Verzeichnisstruktur, VBA

Gibt es eine Möglichkeit, Dateinamen über verschiedene Verzeichnisse hinweg in einem Excel-Blatt mit Links aufzulisten (so kann man auf den Link neben dem Dateinamen klicken und die Datei würde sich öffnen)?

  • Ich bin bereit, ein Skript zu schreiben, aber ich kenne keine bestimmte Methode oder Befehl.
  • Ich möchte nicht die ganze Sache tippen.
  • Ich sorge mich nicht um Verzeichnis / Baumstruktur, aber Dateiverknüpfung sollte vorhanden sein.
  • Es gibt ein Verzeichnis, das viele andere Ordner enthält, die die Dateien enthalten, die ich auflisten muss, meistens * .pdf "s.

Jede Hilfe wird geschätzt. Vielen Dank!

Antworten:

1 für die Antwort № 1

Sie können den folgenden Code verwenden, um den Dateinamen und den Dateipfad zu erhalten. Setzen Sie den Hauptordner auf strFolderPath

"Global Declaration for Start Row

Public lngRow As Long

Sub pReadAllFilesInDirectory()

Dim strFolderPath               As String
Dim BlnInclude_subfolder        As Boolean

"Set Path here
strFolderPath = "C:"

"set start row
lngRow = 1

"Set this true if you want list of sub-folders as well
BlnInclude_subfolder = True

"---------- Reading of files in folders and sub-folders------
Call ListMyFiles(strFolderPath, BlnInclude_subfolder)
"---------- Reading of files in folders and sub-folders------

End Sub

Sub ListMyFiles(mySourcePath As String, blnIncludeSubfolders As Boolean)

Dim MyObject            As Object
Dim mySource            As Object
Dim mySubFolder         As Object
Dim myfile              As Object
Dim iCol                As Long

Set MyObject = CreateObject("Scripting.FileSystemObject")
Set mySource = MyObject.GetFolder(mySourcePath)

"Loop in each file in Folder
For Each myfile In mySource.Files

iCol = 1
Sheet1.Cells(lngRow, iCol).Value = myfile.Name  "File Name
iCol = iCol + 1
Sheet1.Cells(lngRow, iCol).Value = myfile.Path  "File Path/Location
lngRow = lngRow + 1

Next

If blnIncludeSubfolders Then
For Each mySubFolder In mySource.SubFolders
Call ListMyFiles(mySubFolder.Path, True)
Next
End If

End Sub

0 für die Antwort № 2

Ein schneller suchen gab diese Antwort, glaube ich, nach der Sie suchen.

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("D:StuffBusinessTemp")
i = 1
"loops through each file in the directory
For Each objFile In objFolder.Files
"select cell
Range(Cells(i + 1, 1), Cells(i + 1, 1)).Select
"create hyperlink in selected cell
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
objFile.Path, _
TextToDisplay:=objFile.Name
i = i + 1
Next objFile
End Sub