List filer i mappe i et
regneark
Denne makro beder brugeren om
at indtaste stien til en mappe, fx C:\USA. Dernæst skal man tage stilling til,
om eventuelle filer i undermapper skal listes. Når der klikkes OK til sidst,
listes den alle de filer, der findes i den angivne mappe (evt. med tilhørende
undermapper) i A-kolonnen i det aktive ark. Det anbefales at starte med et tomt
ark, da eventuelle værdier i A-kolonnen overskrives. Er mappen tom, eller
eksisterer den slet ikke, vises en fejlmeddelelse.
Sub ListFiler()
Dim Mappe As
String
Dim Undermapper As Boolean
Mappe =
InputBox("Indtast sti til mappe" & vbCrLf _
& "Fx C:\USA")
If MsgBox("Skal undermappers indhold
også listes?", _
vbYesNo + vbQuestion) =
vbYes Then
Undermapper =
True
Else
Undermapper =
False
End If
Set fs = Application.FileSearch
With fs
.LookIn = Mappe
.SearchSubFolders = Undermapper
.Filename = "*"
If .Execute() > 0 Then
Range("a1").Select
For i = 1 To
.FoundFiles.Count
ActiveCell.Value = .FoundFiles(i)
ActiveCell.Offset(1, 0).Select
Next i
Else
MsgBox
"Mappen findes ikke, eller den er tom", vbOKOnly + vbExclamation
End If
End With
End Sub
Makroen virker desværre ikke i
Excel 2007 og 2010, hvor VBA funktionen Application.Filesearch er fjernet (med
den begrundelse, at den kun blev anvendt af meget avancerede Excel brugere. Tak
Microsoft! :-))
Her er en funktion der virker.
Den er baseret på den meget gamle funktion DIR, som fortsat virker, men som
desværre ikke kan tag e undermapper med, så her må man køre makroen i flere
omgange, og så¨selkv specificere den relevante undermappe i hver kørsel.
Sub ListFiler()
Dim
Undersoeg As String
Undersoeg = Dir(InputBox("Indtast sti til mappe" & vbCrLf _
& "Fx C:\USA") & "\*.*")
Do While Len(Undersoeg) > 0
ActiveCell.Value = sFName
ActiveCell.Offset(1, 0).Select
Undersoeg = Dir
Loop
End Sub
- Til top -
- Tilbage til makroer -
- Tilbage til Excel -
|