VBA lar deg velge en fil som skal åpnes ved hjelp av Application.GetOpenFilename metode. I denne opplæringen lærer du hvordan du åpner en dialogboks for filer og angir parametere.
Hvis du vil lære å åpne og lukke en fil, kan du klikke på denne lenken: VBA Open/Close File
Åpne en fildialog i VBA
Hvis du vil åpne en fil i VBA, må du først åpne en dialogboks for å velge en fil. Her er koden:
123 | Dim strFile As StringstrFile = Application.GetOpenFilename ( |
Som du kan se, har metoden flere parametere. FileFilter lar deg filtrere filtyper du trenger, i vårt tilfelle .xlsx -filer.
I Tittel parameter, kan du angi en tittel på dialogboksen. Hvis du vil tillate åpning av flere filer, må du angi Velg flere til True. Hvis du ikke angir denne parameteren, kan bare én fil velges.
Bilde 1. Åpne en fil -dialog
Som du kan se i Bilde 1, vises dialogboksen med tittelen Velg en Excel -fil. Bare Excel -filer filtreres, og vi kan velge flere filer.
Åpne en dialogboks for filer i en bestemt mappe
Hvis du vil åpne en dialogboks i en bestemt mappe, må du bruke metoden .FileDialog med parameteren msoFileDialogFilePicker. I eksemplet åpner vi en dialogboks i mappen C: \ VBA -mappe. Her er koden:
123456789101112131415161718192021 | Dim fd As Office.FileDialogDim strFile As StringSett fd = Application.FileDialog (msoFileDialogFilePicker)Med fd.Filtre.Klar.Filters.Legg til "Excel -filer", "*.xlsx?", 1.Title = "Velg en Excel -fil".AllowMultiSelect = False.InitialFileName = "C: \ VBA -mappe"Hvis .Show = True ThenstrFile = .SelectedItems (1)Slutt omSlutt med |
Først må du deklarere variabelen fd type Office.FileDialog og strengvariabelen for filopptak:
12 | Dim fd As Office.FileDialogDim strFile As String |
Etter dette må du sette fd til Application.FileDialog (msoFileDialogFilePicker):
1 | Sett fd = Application.FileDialog (msoFileDialogFilePicker) |
Nå, inne Med fd Slutt med, kan vi sette flere parametere:
1234567 | .Filtre.Klar.Filters.Legg til "Excel -filer", "*.xlsx?", 1.Title = "Velg en Excel -fil".AllowMultiSelect = False |
Her fjerner vi filfiltrene (.Filtre.Klar) og sett den til .xlsx (.Filters.Legg til "Excel -filer", "*.xlsx?", 1).
Vi kan også sette tittelen på dialogboksen: .Title = "Velg en Excel -fil".
Vi kan begrense en bruker til å velge bare en fil ved å:.AllowMultiSelect = False
For å åpne en dialogboks i mappen vi ønsker, må vi sette denne linjen med koden:
1 | .InitialFileName = "C: \ VBA -mappe" |
På slutten åpner vi bare dialogboksen med alle parameterne som tidligere er angitt:
12345 | Hvis .Show = True ThenstrFile = .SelectedItems (1)Slutt om |
Når vi kjører denne koden, vises dialogboksen for filåpning i mappen C: \ VBA -mappe:
Bilde 2. Åpne en dialogboks i en bestemt mappe