Excel VBA FileDialog

Under arbetet kan det finnas vissa scenarier där vi måste öppna några andra arbetsböcker eller andra filer antingen för att importera data eller för att ta en referens. Det finns en metod att tillhandahålla en sökväg till filen i vår kod i VBA som öppnar filen eller mappen för oss. Men vad händer om vi inte kommer ihåg sökvägen hur kan vi öppna filen. Vi kan behöva söka igenom banan först och sedan igen ge sökvägen. VBA kommer med en lösning som kallas FileDialog.

FileDialog är en egenskap i VBA som gör att vi kan öppna en fil eller en mapp från en sökväg. Med den här egenskapen behöver en användare inte ange mappens sökväg istället kan användaren välja sökvägen. Inte bara detta, FileDialog har totalt fyra egenskaper. De är också kända som konstanter för den här egenskapen. De är som följer:

  1. msoFileDialogFilePicker : Detta gör att användaren kan välja en fil.
  2. msoFileDialogFolderPicker : Detta gör att användaren kan välja en mapp.
  3. msoFileDialogOpen : Detta gör att användaren kan öppna en fil.
  4. msoFileDialogSaveAs: Detta gör att användaren kan spara en fil.

Metoden att använda detta objekt i VBA är som följer.

Application.FIledialog (Filedialog Type)

FileDialog-typen kan vara vilken som helst av ovanstående fyra typer. Låt oss nu använda detta objekt i exempel för att lära oss mer om denna objektegenskap.

Hur använder jag Excel VBA FileDialog?

Nedan är de olika exemplen att använda FileDialog i Excel med VBA-kod.

Du kan ladda ner denna VBA FileDialog Excel-mall här - VBA FileDialog Excel-mall

Excel VBA FileDialog - Exempel 1

Låt oss först hjälpa användaren att välja en fil från en destination. I det här exemplet kommer användaren att välja en fil från mappen och vi visar sökvägen för den valda filen.

Följ stegen nedan för att använda Excel VBA FileDialog:

Steg 1: Gå till fliken Utvecklare och klicka på Visual Basic.

Steg 2: Öppna en modul från infoga menyalternativet som visas nedan.

Steg 3: Starta delproceduren för att börja arbeta med exempel.

Koda:

 Sub SelectFile () Avsluta Sub 

Steg 4: Förklara en variabel som Filedialog som visas nedan.

Koda:

 Sub SelectFile () Dim File As FileDialog End Sub 

Steg 5: Låt oss nu använda detta objekt från metoden Application.Filedialog enligt följande.

Steg 6: När vi öppnar parentesen kan vi se alternativet för fyra FileDialog-typer som visas på bilden nedan.

Steg 7: Välj alternativet Filedialog-typ som msoFileDialogFilePicker

Koda:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) Slut Sub 

Steg 8: Nu måste vi skapa dialogrutan för det här exemplet, låt oss använda Med uttalande enligt följande.

Koda:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) Med File End With End Sub 

Steg 9: Om det finns några filter som vi behöver för att rensa filtren, lägg en punktuppsättning och skriv uttalandet som visas nedan.

Koda:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) Med File .Filters.Clear End With End Sub 

Steg 10: Nu vill vi att användaren ska välja flera filer samtidigt eller en enda fil? För det här exemplet låt oss hålla oss till den enda filen åt gången, så använd .Allowmultiselect som falskt.

Koda:

 Sub SelectFile () Dim File As FileDialog Ställ in File = Application.FileDialog (msoFileDialogFilePicker) Med File .Filters.Clear .AllowMultiSelect = False End With End Sub 

Steg 11: Nu för att visa dialogrutan kan vi skriva .show för att visa dialogrutan enligt följande.

Koda:

 Sub SelectFile () Dim File As FileDialog Ställ in File = Application.FileDialog (msoFileDialogFilePicker) Med File .Filters.Clear .AllowMultiSelect = False. Show End With End Sub 

Steg 12: När vi har kört ovanstående kod kan vi se dialogrutan enligt följande.

Steg 13: Eftersom vi måste visa den valda användarvägen, förklara en annan variabel som en sträng i koden.

Koda:

 Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False. Show End With End Sub 

Steg 14: Vi kommer att använda ett uttalande med utvalda objekt för att hitta sökvägen för den valda filanvändaren och lagra den i vår variabel enligt följande.

Koda:

 Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False. Show Path = .SelectedItems (1) End With End Sub 

Steg 15: Efter Med-uttalande, använd funktionen msgbox för att visa adressen för den valda filen.

Koda:

 Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) Med File .Filters.Clear .AllowMultiSelect = False. Show Path = .SelectedItems (1) Avsluta med MsgBox Path End Sub 

Steg 16: Låt oss köra ovanstående kod och välj en fil och tryck på ok för att se sökvägen enligt följande.

Excel VBA FileDialog - Exempel # 2

Låt oss nu se ett annat alternativ i VBA FileDialog-objektet som är msoFileDialogSaveAs. Den här egenskapen används för att spara en fil på vilken väg som helst. Följ stegen nedan för att använda Excel VBA FileDialog.

Steg 1: Låt oss skriva i samma modul för att spara filen på följande sätt i samma modul.

Koda:

 Sub SaveFile () Avsluta Sub 

Steg 2: Förklara nu två variabler en som sträng medan en annan som ett heltal.

Koda:

 Sub SaveFile () Dim Choice som heltal, sökväg som strängslut Sub 

Steg 3: Låt oss nu göra dialogrutan synlig för användaren med hjälp av showegenskapen enligt följande.

Koda:

 Sub SaveFile () Dim Choice som heltal, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs). Show End Sub 

Steg 4: Använd nu IF-uttalandet för att avgöra användarens val enligt följande.

Koda:

 Sub SaveFile () Dim Choice som heltal, sökväg som strängval = Application.FileDialog (msoFileDialogSaveAs). Visa om val 0 Avsluta sedan Sub 

Steg 5: Låt oss nu välja den sökväg som användaren har valt i vår banvariabel enligt följande.

Koda:

 Sub SaveFile () Dim Choice som heltal, sökväg som strängval = Application.FileDialog (msoFileDialogSaveAs). Visa om val 0 Sedan Path = Application.FileDialog (msoFileDialogSaveAs) .ValdaItems (1) Slut sub 

Steg 6: Låt oss nu visa resultatet med funktionen msgbox och avsluta IF Loop.

Koda:

 Sub SaveFile () Dim Choice Som heltal, sökväg som strängval = Application.FileDialog (msoFileDialogSaveAs). Visa om val 0 Sedan Path = Application.FileDialog (msoFileDialogSaveAs) .Valda objekt (1) MsgBox sökväg om slut 

Steg 7: Kör nu ovanstående kod och se resultatet, det öppnar en dialogruta för att spara filen.

Steg 8: Ge ett filnamn och tryck på Spara. Det ger oss sökvägen för filen på följande sätt.

Saker att komma ihåg

  • FileDialog är en objektegenskap för VBA.
  • Vi behöver inte specificera sökvägen till koden med detta objekt.
  • Med hjälp av punktoperatören kan vi se och använda IntelliSense-egenskaperna för objektet.

Rekommenderade artiklar

Detta är en guide till VBA FileDialog. Här diskuterar vi hur du använder FileDialog-objekt i Excel med hjälp av VBA-kod tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA-kontrollfil finns
  2. Lös ekvation i Excel
  3. VBA Radera fil
  4. Hur skriver jag ut etiketter från Excel?
  5. Exempel på att skriva VBA-kod

Kategori: