VBA låter dig välja en fil som ska öppnas med Application.GetOpenFilename metod. I den här självstudien lär du dig hur du öppnar en dialogruta och anger parametrar.
Om du vill lära dig hur du öppnar och stänger en fil kan du klicka på den här länken: VBA Öppna/stäng fil
Öppna en fildialog i VBA
Om du vill öppna en fil i VBA måste du först öppna en dialogruta för att välja en fil. Här är koden:
123 | Dim strFile As StringstrFile = Application.GetOpenFilename ( |
Som du kan se har metoden flera parametrar. FileFilter låter dig filtrera filtyper som du behöver, i vårt fall .xlsx -filer.
I Titel parameter kan du ange en titel på dialogrutan. Om du vill tillåta att flera filer öppnas måste du ställa in Välj flera till True. Om du inte ställer in denna parameter kan endast en fil väljas.
Bild 1. Öppna en dialogruta
Som du kan se i bild 1 visas dialogrutan med titeln Välj en Excel -fil. Endast Excel -filer filtreras och vi kan välja flera filer.
Öppna en dialogruta för filer i en specifik mapp
Om du vill öppna en dialogruta i en specifik mapp måste du använda metoden .FileDialog med parametern msoFileDialogFilePicker. I exemplet öppnar vi en dialogruta i mappen C: \ VBA -mapp. Här är koden:
123456789101112131415161718192021 | Dim fd som Office.FileDialogDim strFile As StringAnge fd = Application.FileDialog (msoFileDialogFilePicker)Med fd.Filter.Rensa.Filters.Lägg till "Excel -filer", "*.xlsx?", 1.Title = "Välj en Excel -fil".AllowMultiSelect = Falskt.InitialFileName = "C: \ VBA -mapp"Om .Show = True DåstrFile = .SelectedItems (1)Avsluta omSluta med |
Först måste du deklarera variabeln fd typ Office.FileDialog och strängvariabeln för filtagning:
12 | Dim fd som Office.FileDialogDim strFile As String |
Efter detta måste du ställa in fd till Application.FileDialog (msoFileDialogFilePicker):
1 | Ange fd = Application.FileDialog (msoFileDialogFilePicker) |
Nu, inom Med fd Sluta medkan vi ställa in flera parametrar:
1234567 | .Filter.Rensa.Filters.Lägg till "Excel -filer", "*.xlsx?", 1.Title = "Välj en Excel -fil".AllowMultiSelect = Falskt |
Här rensar vi filfiltren (.Filter.Rensa) och ställ in den på .xlsx (.Filters.Lägg till "Excel -filer", "*.xlsx?", 1).
Vi kan också ställa in titeln på dialogrutan: .Title = "Välj en Excel -fil".
Vi kan begränsa en användare att bara välja en fil genom att:.AllowMultiSelect = False
För att öppna en dialogruta i den mapp vi vill ha, måste vi sätta den här raden med koden:
1 | .InitialFileName = "C: \ VBA -mapp" |
I slutet öppnar vi bara dialogrutan med alla parametrar som tidigare ställts in:
12345 | Om .Show = True DåstrFile = .SelectedItems (1)Avsluta om |
När vi kör denna kod visas dialogrutan för filöppning i mappen C: \ VBA -mapp:
Bild 2. Öppna en dialogruta i en specifik mapp