Inhoudsopgave
Natuurlijk moeten we het bestand openen vanuit een bovenliggend Excel-bestand met behulp van VBA in een andere map. Maar tegelijkertijd hebben we ook verschillende soorten criteria over hoe we de werkmap willen openen. Als u benieuwd bent hoe u een werkmap kunt openen met de variabele naam, dan kan dit artikel handig voor u zijn. In dit artikel bespreken we hoe u een werkmap kunt openen met variabele naammet behulp van VBA in Excel met uitgebreide uitleg.
Download Praktijk Werkboek
Download dit oefenwerkboek hieronder.
Werkboek openen met variabele naam met VBA.xlsm
Sample.xlsx
4 eenvoudige manieren om werkmap met variabele naam te openen met VBA in Excel
We gaan de onderstaande dataset gebruiken voor de demonstratie. We hebben de productinformatie van verschillende producten met hun Id. Dit is een voorbeeldbestand dat we gaan openen met de VBA-code.
1. Workbook.Open gebruiken
Met behulp van de Workbook.Open eigenschap, kunnen we bestanden openen door de directory te noemen, of de locatie niet te noemen. We kunnen ook het geopende bestand read-only maken.
1.1 Werkboek openen met vermelding van bestandspad
In de volgende methode gaan we de Werkboek.Open Eigenschap om het bestand rechtstreeks vanuit de genoemde bestandslocatiedirectory te openen. Waar het bestand zich ook bevindt, we kunnen het bestand gemakkelijk openen.
Stappen
- We hebben een bestand in de documentenmap dat we moeten openen.
- We gebruiken de bestandsnaam als variabele en openen het bestand vervolgens met een kleine VBA-macro.
- De exacte directory van het bestand staat hieronder in het eigenschappenvenster.
- Ga eerst naar de Ontwikkelaar tabblad en klik op Visual Basic Als je dat niet hebt, moet je... het tabblad Ontwikkelaar inschakelen Of u kunt ook op ' Alt+F11'. voor het openen van de Visual Basic-editor .
- Dan komt er een nieuw dialoogvenster, in dat dialoogvenster klikt u op de knop Plaats > Module .
- Vervolgens, in de Module editor venster, type de volgende code:
Sub Open_with_File_Path() Dim Open_File As String: File_path = "C:\UsersUserOneDriveDocuments\Sample" Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:=File_path) End Sub
- Sluit dan de Module raam.
- Ga daarna naar Bekijk tab> Macro's .
- Klik dan op Macro's bekijken .
- Na het klikken op Macro's bekijken, selecteer de macro's die je net hebt gemaakt. De naam is hier Open_met_bestand_pad Klik dan op Ren .
- Na dan de Voorbeeld bestand gaat openen.
🔎 Indeling van de code
Sub Open_with_File_Path()
⮚ Eerst geven we de subprocedure een naam, namelijk Open_met_bestand_pad .
Dim Open_File als String: Bestandspad = "C:\Users\UneDrive\Documents\Sample".
⮚ Dan zetten we de locatie van het bestand in de Bestandspad variabele
Dim wrkbk als werkboek
Dan declareren we onze variabele wrkbk waarvan het type een werkboek is.
Set wrkbk = Werkmappen.Open(Bestandsnaam:=Bestandspad)
⮚ Dan openen we het bestand genaamd in de Bestandspad directory variabele en stel het bestand in als wrkbk variabel.
Einde Sub
⮚ Tenslotte beëindigen we de subprocedure van deze code.
Lees meer: Werkboek openen vanuit een pad met Excel VBA (4 voorbeelden)
1.2 Werkboek openen zonder vermelding van bestandspad
In de volgende methode openen we het bestand uit de bovenliggende map, waar het hoofdbestand is opgeslagen. Het bestand kan worden geopend zonder vermelding van een locatie in de code. Dit bestand hoeft alleen maar in dezelfde map te staan als de bovenliggende map.
Stappen
- We hebben een ander bestand opgeslagen in dezelfde directory waar het bovenliggende Excel-bestand nu is opgeslagen.
- De bestandsnaam is 1.
- Ga eerst naar de Ontwikkelaar tabblad en klik op Visual Basic Als je dat niet hebt, moet je... het tabblad Ontwikkelaar inschakelen Of u kunt ook op ' Alt+F11 ' voor het openen van de Visual Basic-editor .
- Dan komt er een nieuw dialoogvenster, in dat dialoogvenster klikt u op de knop Plaats > Module .
- Vervolgens, in de Module editor venster, type de volgende code:
Sub Open_without_File_Path() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:="1.xlsx") End Sub
- Sluit dan de Module raam.
- Ga daarna naar Bekijk tab> Macro's .
- Klik dan op Macro's bekijken .
- Nadat u op Macro's weergeven hebt geklikt, selecteert u de macro's die u zojuist hebt gemaakt. De naam is hier Open_zonder_bestand_pad Klik dan op Uitvoeren.
- Na het indrukken van Ren ziet u dat het bestand met de naam 1 nu geopend is.
- En zo openen we de werkmap met variabele naam met VBA in Excel.
🔎 Indeling van de code
Sub Open_without_File_Path()
⮚ Eerst geven we de subprocedure een naam, namelijk Sub Open_without_File_Path()
Dim wrkbk als werkboek
Wij verklaren wrkbk als een variabele in Werkboek type
Set wrkbk = Werkmappen.Open(Bestandsnaam:="1.xlsx")
⮚ We openen een bestand uit de bovenliggende map met de naam 1.xlsx .
Einde Sub
⮚ Tenslotte beëindigen we de subprocedure van deze code.
1.3 Werkboek openen als alleen lezen
De methode is vergelijkbaar met de eerste methode, maar hier openen we het bestand in alleen-lezen modus, wat betekent dat we geen gegevens of waarden in het Excel-bestand kunnen wijzigen.
Stappen
- Het bestand dat we willen openen is opgeslagen in de documentenmap.
- En dit is het bestand dat we willen openen als alleen-lezen.
- Ga eerst naar de Ontwikkelaar tabblad en klik op Visual Basic Als je dat niet hebt, moet je... het tabblad Ontwikkelaar inschakelen Of u kunt ook op ' Alt+F11 ' voor het openen van de Visual Basic Editor.
- Dan komt er een nieuw dialoogvenster, in dat dialoogvenster klikt u op de knop Plaats > Module .
- Vervolgens, in de Module editor venster, type de volgende code:
Sub Open_met_bestand_lezen_alleen() Dim wrkbk als werkboek Stel wrkbk = Werkboeken.Open("C:\Users\OneDriveDocuments\Sample", ReadOnly:=True) End Sub
- Sluit dan de Module raam.
- Ga daarna naar Bekijk tab> Macro's .
- Klik dan op Macro's bekijken .
- Nadat u op Macro's weergeven hebt geklikt, selecteert u de macro's die u zojuist hebt gemaakt. De naam is hier Open_met_bestand_lezen_alleen Klik dan op Ren .
- Na het klikken op Ren zullen we zien dat het bestand nu geopend is als alleen-lezen, zoals in de titelbalk te zien is.
🔎 Indeling van de code
Sub Open_with_File_Read_Only()
⮚ Eerst geven we de subprocedure een naam, namelijk Open_with_File_Read_Only()
Dim wrkbk als werkboek
Wij verklaren wrkbk als variabele in Werkboektype
Set wrkbk = Werkboeken.Open("C:\UsersUserOneDriveDocuments\Sample", ReadOnly:=True)
⮚ Het bestand wordt dan geopend vanuit de aangewezen directory, en het bestand wordt ingesteld alleen-lezen door het laatste argument.
Einde Sub
⮚ Tenslotte beëindigen we de subprocedure van deze code.
Lees meer: Werkboek openen als alleen-lezen met Excel VBA
2. Berichtenbox gebruiken
Bijna vergelijkbaar met de vorige methode kunnen we bestanden openen via de VBA-code hier in Excel, maar in dit geval zullen we hier een klein berichtvak inbouwen.
Stappen
- Ga eerst naar de Ontwikkelaar tabblad en klik op Visual Basic Als je dat niet hebt, moet je... het tabblad Ontwikkelaar inschakelen Of u kunt ook op ' Alt+F11'. voor het openen van de Visual Basic-editor .
- Dan komt er een nieuw dialoogvenster, in dat dialoogvenster klikt u op de knop Plaats > Module .
- Vervolgens, in de Module editor venster, type de volgende code:
Sub Open_File_with_Messege_Box() Dim path As String: path = "C:\Users\OneDocuments\Sample.xlsx" Als Dir(path) "" Dan Workbooks.Open (path) MsgBox "The File Opened Successfully" Else MsgBox "Opening of the File Failed" End If End Sub
- Sluit dan de Module raam.
- Ga daarna naar Bekijk tab> Macro's .
- Klik dan op Macro's bekijken .
- Na het klikken op Macro's bekijken, selecteer de macro's die je net hebt gemaakt. De naam is hier Open_File_met_Messege_Box Klik dan op Ren .
- Toen kregen we het waarschuwingsvenster, dat toont dat Het bestand is succesvol geopend .
- Klik dan op OK .
- En dan zullen we zien dat het bestand nu geopend is.
- En dan proberen we de code een beetje te veranderen.
- We veranderen de bestandsnaam in Monster10 en er is eigenlijk geen bestand met de naam Voorbeeld 10 in de documenten map.
- Dan hebben we Ren de code opnieuw, en er is een berichtvenster dat zegt Opening van het bestand mislukt .
- Klik op OK hierna.
🔎 Indeling van de code
Sub Open_File_with_Messege_Box()
⮚ Eerst geven we de subprocedure een naam, namelijk Open_with_File_Read_Only()
Dim pad als String:
Wij verklaren wrkbk als een variabele in het type Werkboek
Als Dir(path) "" Dan Werkmappen.Open (path)
MsgBox "Het bestand is succesvol geopend" Else
⮚ Deze regel controleert of het bestand met de naam Sample al dan niet beschikbaar is in de directory. Als het bestand er is, wordt het bestand geopend en wordt tegelijkertijd het bericht getoond.
MsgBox "Het openen van het bestand is mislukt".
Als er geen bestand is met de naam Voorbeeld in de directory, dan wordt dit bericht afgeleverd.
End If
⮚ Tot slot beëindigen we de subprocedure van deze code.
Einde Sub
⮚ Tot slot beëindigen we de subprocedure van deze code.
Lees meer: Werkboek openen en Macro uitvoeren met VBA (4 voorbeelden)
3. Gebruik van dialoogvenster om bestand te openen
Het uitpakken van de bestandslocatiemap en deze telkens importeren in de VBA-code is nogal omslachtig. Om dit probleem op te lossen, zullen we laten zien hoe u een dialoogvenster kunt gebruiken om een bestand uit een willekeurige map te selecteren.
Stappen
- Nu openen we het bestand via het dialoogvenster van de bestandsverkenner.
- Ga eerst naar de Ontwikkelaar tabblad en klik op Visual Basic Als je dat niet hebt, moet je... het tabblad Ontwikkelaar inschakelen Of u kunt ook op ' Alt+F11'. voor het openen van de Visual Basic-editor .
- Dan komt er een nieuw dialoogvenster, in dat dialoogvenster klikt u op de knop Plaats > Module .
- Vervolgens, in de Module editor venster, type de volgende code:
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 = "Kies en Open " & 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
- Sluit dan de Module raam.
- Ga daarna naar Bekijk tab> Macro's .
- Klik dan op Macro's bekijken .
- Na het klikken op Macro's bekijken, selecteer de macro's die je net hebt gemaakt. De naam is hier Bestand openen_met_Dialoogvenster Klik dan op Ren .
- En dan wordt een nieuw venster geopend. In het dialoogvenster van de bestandsverkenner en selecteer Voorbeeld en klik op OK .
- Dan is het bestand met de naam Voorbeeld geopend.
- En zo openen we de werkmap met variabele naam met VBA in Excel.
🔎 Indeling van de code
Sub Open_File_with_Dialog_Box()
⮚ Eerst geven we de subprocedure een naam, namelijk Sub Open_File_with_Dialog_Box()
Dim Dbox als BestandsDialoog
Wij verklaren Dbox als een variabele in FileDialog type
Dim Bestandspad als String
Wij verklaren Bestandspad als een variabele in de Bestandspad Als String type
Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Kies en Open " & FileType
⮚ Vanaf de eerste regel komt er een dialoogvenster. De volgende regel geeft de naam van het dialoogvenster en het bestandstype aan.
⮚ Dbox.Title stelt de titel van het dialoogvenster in. en Bestandstype
stel het bestandstype in.
Dbox.Filters.Clear
De Dbox.Filters.Clear wist elk eerder toegepast filter in het dialoogvenster
Dbox.Show
De Dbox.Show zal het dialoogvenster op het bestand doen verschijnen.
⮚ Deze regel bepaalt of de gebruiker meer dan één bestand heeft geselecteerd. Als de gebruiker meer dan één bestand heeft geselecteerd, stopt de hele procedure.
Einde Sub
⮚ Tenslotte beëindigen we de subprocedure van deze code.
Lees meer: Map openen en bestand selecteren met Excel VBA (4 voorbeelden)
4. Workbook.Add gebruiken
In tegenstelling tot de vorige methoden, maken we een nieuw Excel-bestand aan in een vooraf bepaalde map en openen we het vervolgens met het programma Werkboek. eigendom.
Stappen
- Ga eerst naar de Ontwikkelaar tabblad en klik op Visual Basic Als je dat niet hebt, moet je... het tabblad Ontwikkelaar inschakelen Of u kunt ook op ' Alt+F11'. voor het openen van de Visual Basic-editor .
- Dan komt er een nieuw dialoogvenster, in dat dialoogvenster klikt u op de knop Plaats > Module .
Vervolgens, in de Module editor venster, type de volgende code:
Sub Open_File_with_Add_Property() Dim File_Path As String: File_Path = "C:\Users\OneDriveDocuments\Sample.xlsx" Dim wb As Workbook Set wb = Workbooks.Add(File_Path) End Sub
- Sluit dan de Module raam.
- Ga daarna naar Bekijk tab> Macro's .
- Klik dan op Macro's bekijken .
- Na het klikken op Macro's bekijken, selecteer de macro's die je net hebt gemaakt. De naam is hier Open_bestand_met_toevoeging_eigenschap Klik dan op Ren .
- Na het klikken op Rennen, zult u zien dat er nu een nieuw bestand wordt aangemaakt en geopend.
🔎 Indeling van de code
⮚ Eerst geven we de subprocedure een naam, namelijk Sub Open_File_with_Add_Property()
⮚ Dan verklaren we de Bestandspad variabele als String type.
Dim File_Path als String: File_Path = "C:\Users\UserDriveDocuments\Sample.xlsx".
En stel de Bestandspad variabele naar de locatie van het bestand.
Dim wb als werkboek
Wij verklaren wb als een variabele in de Werkboek type.
Set wb = Workbooks.Add(File_Path)
⮚ De werkmap wordt dan toegevoegd vanuit de directory opgeslagen in de Bestandspad locatie met behulp van de Werkboek.toevoegen eigendom.
Einde Sub
⮚ Tot slot beëindigen we de subprocedure van deze code.
Lees meer: [Fixed!] Methode Openen van Object Werkmappen mislukt (4 oplossingen)
Conclusie
Kortom, de vraag hoe we werkmappen met variabele namen kunnen openen met VBA wordt hier beantwoord met 4 verschillende voorbeelden. De VBA-macro methode vereist voorafgaande VBA-gerelateerd kennis te begrijpen vanuit het niets.
Voor dit probleem is een werkboek met macro's te downloaden waarin u deze methoden kunt oefenen.
Voel je vrij om vragen of feedback te stellen via de commentaar sectie. Elke suggestie voor de verbetering van de Exceldemy gemeenschap zeer op prijs zal worden gesteld