Sådan åbnes arbejdsbog med variabel navn med Excel VBA

  • Del Dette
Hugh West

Naturligvis kan vi have brug for at åbne filen fra en overordnet Excel-fil ved hjælp af VBA i en anden mappe. Men samtidig har vi også forskellige typer kriterier for, hvordan vi ønsker at åbne arbejdsmappen. Hvis du er nysgerrig efter at vide, hvordan du kan åbne en arbejdsmappe med det variable navn, så kan denne artikel være praktisk for dig. I denne artikel diskuterer vi, hvordan du kan åbne en arbejdsmappe med variabelt navn.ved hjælp af VBA i Excel med udførlige forklaringer.

Download arbejdsbog til øvelser

Download denne øvelsesarbejdsbog nedenfor.

Åbn arbejdsbog med variabel navn ved hjælp af VBA.xlsm

Prøve.xlsx

4 nemme måder at åbne arbejdsmappe med variabel navn ved hjælp af VBA i Excel

Vi vil bruge nedenstående datasæt til demonstrationen. Vi har produktoplysningerne for flere produkter med deres Id. Dette er en prøvefil, som vi vil åbne ved hjælp af VBA-koden.

1. Brug af egenskaben Workbook.Open

Brug af den Workbook.Open egenskaben kan vi åbne filer ved at nævne mappen eller ved ikke at nævne placeringen. Vi kan også gøre den åbnede fil skrivebeskyttet.

1.1 Åbn arbejdsbog med angivelse af filsti

I den næste metode skal vi bruge Egenskaben Workbook.Open for at åbne filen direkte fra den nævnte filplaceringsmappe. Uanset hvor filen er placeret, kan vi nemt åbne den.

Trin

  • Vi har en fil gemt i mappen dokumenter, som vi skal åbne.
  • Vi bruger filnavnet som en variabel og åbner derefter filen ved hjælp af en lille VBA-makro.
  • Den nøjagtige filmappe for filen vises nedenfor i egenskabsvinduet.

  • Først skal du gå til Udvikler og klik på Visual Basic . Hvis du ikke har det, skal du aktivere fanen Udvikler Eller du kan også trykke på ' Alt+F11 til åbning af den Visual Basic-editor .

  • Der kommer en ny dialogboks frem, og i denne dialogboks skal du klikke på Indsæt > Modul .

  • Dernæst, i den Modul editor-vinduet, skriv følgende kode:
 Sub Open_with_File_Path() Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample" Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:=File_path) End Sub 

  • Luk derefter Modul vindue.
  • Derefter skal du gå til Se faneblad> Makroer .
  • Klik derefter på Vis makroer .

  • Når du har klikket på Vis makroer, Vælg de makroer, som du lige har oprettet. Navnet her er Open_with_File_Path Klik derefter på Kør .

  • Efterfølgende vil den Eksempel fil vil blive åbnet.

🔎 Opdeling af koden

 Sub Open_with_File_Path() 

⮚ Først giver vi et navn til underproceduren, som er Open_with_File_Path .

 Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample" 

⮚ Derefter angiver vi placeringen af filen i File_Path variabel

 Dim wrkbk As Workbook 

⮚ Derefter erklærer vi vores variabel wrkbk , hvis type er en arbejdsbog.

 Set wrkbk = Workbooks.Open(Filename:=File_path) 

⮚ Derefter åbner vi den fil, der er navngivet i File_Path og indstiller filen som wrkbk variabel.

 End Sub 

⮚ Endelig afslutter vi underproceduren i denne kode.

Læs mere: Sådan åbnes arbejdsbog fra stien ved hjælp af Excel VBA (4 eksempler)

1.2 Åbn arbejdsbog uden at nævne filsti

I den næste metode åbner vi filen fra den overordnede mappe, hvor hovedfilen er gemt. Filen kan åbnes uden at nævne nogen placering i koden. Denne fil skal blot være i samme mappe som den overordnede mappe.

Trin

  • Vi har en anden fil gemt i den samme mappe, hvor den overordnede Excel-fil nu er gemt.
  • Filnavnet er 1.

  • Først skal du gå til Udvikler og klik på Visual Basic . Hvis du ikke har det, skal du aktivere fanen Udvikler Eller du kan også trykke på ' Alt+F11 ' til at åbne den Visual Basic-editor .

  • Der kommer en ny dialogboks frem, og i denne dialogboks skal du klikke på Indsæt > Modul .

  • Dernæst, i den Modul editor-vinduet, skriv følgende kode:
 Sub Open_without_File_Path() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:="1.xlsx") End Sub 

  • Luk derefter Modul vindue.
  • Derefter skal du gå til Se faneblad> Makroer .
  • Klik derefter på Vis makroer .

  • Når du har klikket på Vis makroer, skal du vælge de makroer, som du lige har oprettet. Navnet her er Open_without_File_Path Klik derefter på Kør.

  • Når du har trykket på Kør , vil du se, at filen med navnet 1 nu er åben.
  • Og sådan åbner vi arbejdsmappen med variabelt navn ved hjælp af VBA i Excel.

🔎 Opdeling af koden

 Sub Open_without_File_Path() 

⮚ Først giver vi et navn til underproceduren, som er Sub Open_without_File_Path()

 Dim wrkbk As Workbook 

⮚ Vi erklærer wrkbk som en variabel i Workbook type

 Set wrkbk = Workbooks.Open(Filename:="1.xlsx") 

⮚ Vi åbner filen fra den overordnede mappe med navnet 1.xlsx .

 End Sub 

⮚ Endelig afslutter vi underproceduren i denne kode.

1.3 Åbn arbejdsbog som skrivebeskyttet

Metoden ligner meget den første metode, men her åbner vi filen i skrivebeskyttet tilstand, hvilket betyder, at vi ikke kan ændre data eller værdier i Excel-filen.

Trin

  • Den fil, som vi vil åbne, er gemt i dokumentmappen.
  • Og dette er den fil, som vi vil åbne som skrivebeskyttet.

  • Først skal du gå til Udvikler og klik på Visual Basic . Hvis du ikke har det, skal du aktivere fanen Udvikler Eller du kan også trykke på ' Alt+F11 ' til at åbne Visual Basic-editoren.

  • Der kommer en ny dialogboks frem, og i denne dialogboks skal du klikke på Indsæt > Modul .

  • Dernæst, i den Modul editor-vinduet, skriv følgende kode:
 Sub Open_with_File_Read_Only() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True) End Sub 
  • Luk derefter Modul vindue.
  • Derefter skal du gå til Se faneblad> Makroer .
  • Klik derefter på Vis makroer .

  • Når du har klikket på Vis makroer, skal du vælge de makroer, som du lige har oprettet. Navnet her er Open_with_File_Read_Only Klik derefter på Kør .

  • Når du har klikket på Kør , kan vi se, at filen nu er åbnet som skrivebeskyttet, som vist i titellinjen.

🔎 Opdeling af koden

 Sub Open_with_File_Read_Only() 

⮚ Først giver vi et navn til underproceduren, som er Open_with_File_Read_Only()

 Dim wrkbk As Workbook 

⮚ Vi erklærer wrkbk som variabel i Workbook type

 Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True) 

⮚ Filen åbnes derefter fra den angivne mappe, og filen vil blive indstillet skrivebeskyttet ved det sidste argument.

 End Sub 

⮚ Endelig afslutter vi underproceduren i denne kode.

Læs mere: Sådan åbnes arbejdsbog som Read-Only med Excel VBA

2. Brug af meddelelsesboks

Næsten ligesom den foregående metode kan vi åbne filer via VBA-koden her i Excel, men i dette tilfælde vil vi indarbejde en lille meddelelsesboks her.

Trin

  • Først skal du gå til Udvikler og klik på Visual Basic . Hvis du ikke har det, skal du aktivere fanen Udvikler Eller du kan også trykke på ' Alt+F11 til åbning af den Visual Basic-editor .

  • Der kommer en ny dialogboks frem, og i denne dialogboks skal du klikke på Indsæt > Modul .

  • Dernæst, i den Modul editor-vinduet, skriv følgende kode:
 Sub Open_File_with_Messege_Box() Dim path As String: path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" If Dir(path) "" Then Workbooks.Open (path) MsgBox "Filen er åbnet med succes" Else MsgBox "Åbning af filen mislykkedes" End If End Sub 

  • Luk derefter Modul vindue.
  • Derefter skal du gå til Se faneblad> Makroer .
  • Klik derefter på Vis makroer .

  • Når du har klikket på Vis makroer, Vælg de makroer, som du lige har oprettet. Navnet her er Open_File_with_Messege_Box Klik derefter på Kør .

  • Så fik vi en advarselsboks, som viser, at Filen blev åbnet med succes .
  • Klik derefter på OK .

  • Og så vil vi se, at filen nu er åben.

  • Og så forsøger vi at ændre koden en smule.
  • Vi ændrer filnavnet til Prøve10 , og der findes faktisk ingen fil med navnet Prøve10 i dokumentmappen.

  • Så vi Kør koden igen, og der kommer en beskedboks, hvor der står Åbning af filen mislykkedes .
  • Klik på OK herefter.

🔎 Opdeling af koden

 Sub Open_File_with_Messege_Box() 

⮚ Først giver vi et navn til underproceduren, som er Open_with_File_Read_Only()

 Dim path As String: 

⮚ Vi erklærer wrkbk som en variabel i arbejdsmappetypen

 Hvis Dir(sti) "" Derefter Workbooks.Open (sti) 
 MsgBox "Filen blev åbnet med succes" Else 

⮚ Denne linje tjekker, om filen med navnet Sample er tilgængelig i mappen eller ej. Hvis filen er der, åbnes den, og samtidig vises meddelelsen.

 MsgBox "Åbning af filen mislykkedes" 

⮚ Hvis der ikke findes en fil med navnet Eksempel i mappen, vil denne meddelelse blive leveret.

 End If 

⮚ Endelig afslutter vi underproceduren i denne kode.

 End Sub 

⮚ Endelig afslutter vi underproceduren i denne kode.

Læs mere: Sådan åbnes arbejdsbog og køre makro ved hjælp af VBA (4 eksempler)

3. Brug af dialogboks til at åbne fil

Det er ret besværligt at udtrække filplaceringsmappen og importere dem hver gang i VBA-koden. For at løse problemet vil vi vise, hvordan du kan bruge en dialogboks til at vælge fil fra en hvilken som helst mappe.

Trin

  • Nu skal vi åbne filen ved hjælp af dialogboksen i File Explorer.
  • Først skal du gå til Udvikler og klik på Visual Basic . Hvis du ikke har det, skal du aktivere fanen Udvikler Eller du kan også trykke på ' Alt+F11 til åbning af den Visual Basic-editor .

  • Der kommer en ny dialogboks frem, og i denne dialogboks skal du klikke på Indsæt > Modul .

  • Dernæst, i den Modul editor-vinduet, skriv følgende kode:
 Sub Open_File_with_Dialog_Box() Dim Dbox As FileDialog Dim File_Path As String Dim wrkbk As Workbook Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Vælg og åbn " & FileType Dbox.Filters.Clear Dbox.Show If Dbox.SelectedItems.Count = 1 Then File_Path = Dbox.SelectedItems(1) End If Set wrkbk = Workbooks.Open(Filename:=File_Path) End Sub 
  • Luk derefter Modul vindue.
  • Derefter skal du gå til Se faneblad> Makroer .
  • Klik derefter på Vis makroer .

  • Når du har klikket på Se makroer, Vælg de makroer, som du lige har oprettet. Navnet her er Open_File_with_Dialog_Box Klik derefter på Kør .

  • Og så åbnes et nyt vindue. I dialogboksen File Explorer og vælg Eksempel og klik på OK .

  • Derefter skal filen med navnet Eksempel åbnet.
  • Og sådan åbner vi arbejdsmappen med variabelt navn ved hjælp af VBA i Excel.

🔎 Opdeling af koden

 Sub Open_File_with_Dialog_Box() 

⮚ Først giver vi et navn til underproceduren, som er Sub Open_File_with_Dialog_Box()

 Dim Dbox As FileDialog 

⮚ Vi erklærer Dbox som en variabel i FileDialog type

 Dim File_Path As String 

⮚ Vi erklærer File_Path som en variabel i File_Path Som String type

 Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Vælg og åbn " & FileType 

⮚ Der vil være en dialogboks fra den første linje. Den næste linje angiver dialogboksens navn og filtype.

Dbox.Title vil angive titlen på dialogboksen. og FileType indstille filtype.

 Dbox.Filters.Clear 

⮚ Den Dbox.Filters.Clear sletter alle tidligere anvendte filtre i diaogboksen

 Dbox.Show 

⮚ Den Dbox.Show får dialogboksen til at blive vist i filen.

⮚ Denne linje afgør, om brugeren har valgt mere end én fil eller ej. Hvis brugeren har valgt mere end én fil, stopper hele proceduren.

 End Sub 

⮚ Endelig afslutter vi underproceduren i denne kode.

Læs mere: Sådan åbner du mappe og vælger fil ved hjælp af Excel VBA (4 eksempler)

4. Brug af Workbook.Add Property

I modsætning til de tidligere metoder vil vi oprette en ny Excel-fil i en forudbestemt mappe og derefter åbne den ved hjælp af Arbejdsbog. Tilføj ejendom.

Trin

  • Først skal du gå til Udvikler og klik på Visual Basic . Hvis du ikke har det, skal du aktivere fanen Udvikler Eller du kan også trykke på ' Alt+F11 til åbning af den Visual Basic-editor .

  • Der kommer en ny dialogboks frem, og i denne dialogboks skal du klikke på Indsæt > Modul .

Dernæst, i den Modul editor-vinduet, skriv følgende kode:

 Sub Open_File_with_Add_Property() Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" Dim wb As Workbook Set wb = Workbooks.Add(File_Path) End Sub 
  • Luk derefter Modul vindue.
  • Derefter skal du gå til Se faneblad> Makroer .
  • Klik derefter på Vis makroer .

  • Når du har klikket på Vis makroer, Vælg de makroer, som du lige har oprettet. Navnet her er Open_File_with_Add_Property Klik derefter på Kør .

  • Når du har klikket på Kør, vil du bemærke, at der nu er oprettet og åbnet en ny fil.

🔎 Opdeling af koden

⮚ Først giver vi et navn til underproceduren, som er Sub Open_File_with_Add_Property()

⮚ Derefter erklærer vi den File_Path variabel som String type.

 Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" 

⮚ Og indstil den File_Path variabel til filens placering.

 Dim wb As Workbook 

⮚ Vi erklærer wb som en variabel i Arbejdsbog type.

 Set wb = Workbooks.Add(File_Path) 

⮚ Arbejdsbogen tilføjes derefter fra den mappe, der er gemt i File_Path placering ved hjælp af Arbejdsbog.Tilføj ejendom.

 End Sub 

⮚ Endelig afslutter vi underproceduren i denne kode.

Læs mere: [Rettet!] Metode Åbning af objektarbejdsbøger mislykkedes (4 løsninger)

Konklusion

For at opsummere det hele, er spørgsmålet om, hvordan vi kan åbne arbejdsbøger med variabelnavne ved hjælp af VBA besvaret her ved hjælp af 4 forskellige eksempler. Den VBA-makro metode kræver forudgående VBA-relateret viden til at forstå fra bunden.

Til denne opgave kan du downloade en makroaktiveret arbejdsbog, hvor du kan øve dig i disse metoder.

Du er velkommen til at stille spørgsmål eller give feedback i kommentarfeltet. Ethvert forslag til forbedring af Exceldemy Fællesskabet vil være meget værdsat

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.