VBA Werkmap openen / sluiten

In deze zelfstudie leert u hoe u VBA kunt gebruiken om Excel-werkmap op verschillende manieren te openen en te sluiten.

Met VBA kunt u bestanden openen of sluiten met behulp van de standaardmethoden .Open en .Dichtbij.

Als u wilt leren hoe u kunt controleren of een bestand bestaat voordat u probeert het bestand te openen, kunt u op deze link klikken: VBA-bestand bestaat

Open een werkmap in VBA

Werkmap openen vanuit pad

Als u weet welk bestand u wilt openen, kunt u de volledige padnaam in de functie opgeven. Hier is de code:

1 Werkmappen.Open "C:\VBA-map\Voorbeeldbestand 1.xlsx"

Deze regel van de code opent het bestand "Voorbeeldbestand 1" uit de "VBA-map".

Werkmap openen - ActiveWorkbook

Wanneer u een werkmap opent, wordt deze automatisch de ActiveWorkbook. U kunt als volgt naar de nieuw geopende werkmap verwijzen:

1 ActiveWorkbook.Opslaan

Wanneer u naar een blad of bereik verwijst en de naam van de werkmap weglaat, gaat VBA ervan uit dat u verwijst naar de ActiveWorkbook:

1 Spreadsheets ("Blad1").Naam = "Invoer"

Werkmap openen en toewijzen aan een variabele

U kunt ook een werkmap openen en deze rechtstreeks aan een objectvariabele toewijzen. Deze procedure opent een werkmap voor de wb variabele en sla vervolgens de werkmap op.

123456 Sub OpenWerkboekNaarVariable()Dim wb als werkboekStel wb = Workbooks.Open("C:\VBA Folder\Voorbeeldbestand 1.xlsx") inwb.OpslaanEinde sub

Werkmappen toewijzen aan variabelen wanneer ze worden geopend, is de beste manier om uw werkmappen bij te houden

Dialoogvenster Werkmap openen

U kunt ook het dialoogvenster Bestand openen van de werkmap activeren. Hierdoor kan de gebruiker naar een bestand navigeren en het openen:

12345678 Sub Open Werkboek ()Dim strFile As StringstrFile = Application.GetOpenFilename()Werkmappen.Open (strFile)Einde sub

Zoals je kunt zien in afbeelding 1, kunnen gebruikers met deze aanpak kiezen welk bestand ze willen openen. De Open File Dialog Box kan sterk worden aangepast. U kunt standaard naar een bepaalde map gaan, kiezen welke typen bestanden zichtbaar zijn (ex… alleen xlsx), en meer. Lees onze tutorial over de Open File Dialog Box voor gedetailleerde voorbeelden.

Nieuwe werkmap openen

Deze regel code opent een nieuwe werkmap:

1 Werkmappen.Toevoegen

Open nieuwe werkmap naar variabele

Deze procedure opent een nieuwe werkmap en wijst deze toe aan variabele wb:

1234 Sub OpenNieuweWerkmap()Dim wb als werkboekStel wb = Werkmappen in.ToevoegenEinde sub

Syntaxis van werkmap openen

Wanneer u Workbooks.Open gebruikt, merkt u misschien dat er veel opties beschikbaar zijn bij het openen van de werkmap:

De bestandsnaam is vereist. Alle andere argumenten zijn optioneel - en u hoeft waarschijnlijk de meeste andere argumenten niet te kennen. Dit zijn de twee meest voorkomende:

Werkmap alleen-lezen openen

Wanneer de werkmap alleen-lezen is geopend, kunt u niet opslaan over het oorspronkelijke bestand. Dit voorkomt dat het bestand door de gebruiker wordt bewerkt.

1 Werkmappen.Open "C:\VBA-map\Voorbeeldbestand 1.xlsx", , True

Met wachtwoord beveiligde werkmap openen

Een werkmap is mogelijk beveiligd met een wachtwoord. Gebruik deze code om de met een wachtwoord beveiligde werkmap te openen:

1 Werkmappen.Open "C:\VBA-map\Voorbeeldbestand 1.xlsx", , , "wachtwoord"

Syntaxisnotities van werkmap openen

Merk op dat we in de bovenstaande afbeelding een haakje "(" hebben opgenomen om de syntaxis weer te geven. Als u haakjes gebruikt bij het werken met Workbooks.Open, moet u de werkmap toewijzen aan een variabele:

1234 Sub-OpenWB()Dim wb als werkboekSet wb = Workbooks.Open("C:\VBA Folder\Voorbeeldbestand 1.xlsx", True, True)Einde sub

Sluit een werkmap in VBA

Specifieke werkmap sluiten

Net als bij het openen van een werkmap, zijn er verschillende manieren om een ​​bestand te sluiten. Als je weet welk bestand je wilt sluiten, kun je de volgende code gebruiken:

1 Workbooks.Close ("C:\VBA-map\Voorbeeldbestand 1.xlsx")

Deze regel code sluit het bestand "Voorbeeldbestand 1" als het is geopend. Als dit niet het geval is, wordt er een fout geretourneerd, dus u moet zorgen voor foutafhandeling.

Actieve werkmap sluiten

Als u de werkmap die momenteel actief is, wilt sluiten, kunt u dat met deze regel code doen:

1 ActiveWorkbook.Sluiten

Sluit alle geopende werkmappen

Om alle geopende werkmappen te sluiten, kunt u eenvoudig deze code gebruiken:

1 Werkmappen.Sluiten

Sluit eerst geopende werkmap

Hiermee wordt de eerste geopende/gemaakte werkmap gesloten:

1 Werkmappen(1).Sluiten

Vervang 1 door 2 om de tweede geopende / gemaakte werkmap te sluiten, enzovoort.

Sluiten zonder op te slaan

Hiermee wordt een werkmap gesloten zonder op te slaan en zonder de prompt voor opslaan weer te geven:

1 ActiveWorkbook.Sluit savechanges:=False

Opslaan en sluiten zonder prompt

Op dezelfde manier zal dit een werkmap opslaan en sluiten zonder de opslagprompt weer te geven:

1 ActiveWorkbook.Sluit savechanges:=True

Opmerking: er zijn verschillende andere manieren om aan te geven of u een werkmap wilt opslaan of niet, en ook of u prompts wilt weergeven of niet. Hier wordt hier nader op ingegaan.

Andere open voorbeelden van werkmappen

Meerdere nieuwe werkmappen openen

Met deze procedure worden meerdere nieuwe werkmappen geopend, waarbij de nieuwe werkmappen aan een array worden toegewezen:

12345678 Sub OpenMultipleNewWorkbooks()Dim arrWb(3) als werkboekDim ik als geheel getalVoor i = 1 tot 3Stel arrWb(i) = Werkmappen in.Toevoegenvolgende iEinde sub

Alle Excel-werkmappen in een map openen

Deze procedure opent alle Excel-werkmappen in een map met behulp van de Open File Dialog-kiezer.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder()Dim wb als werkboekDim dlgFD As FileDialogDim strFolder As StringDim strBestandsnaam As StringStel dlgFD = Application.FileDialog (msoFileDialogFolderPicker) inAls dlgFD.Toon = -1 DanstrFolder = dlgFD.SelectedItems(1) & Application.PathSeparatorstrFileName = Dir(strFolder & "*.xls*")Do While strFileName ""Stel wb = Workbooks.Open (strFolder & strFileName) instrFileName = mapLusStop alsEinde sub

Controleer of een werkmap is geopend

Deze procedure test of een werkmap geopend is:

1234567891011 Sub TestByWerkboekNaam()Dim wb als werkboekVoor elke wb In WerkmappenAls wb.Name = "Nieuw Microsoft Excel-werkblad.xls" DanMsgBox "Gevonden"Exit Sub 'belcode hier, we sluiten nu gewoon afStop alsVolgendeEinde sub

Werkboek_Open gebeurtenis

VBA-gebeurtenissen zijn "triggers" die VBA vertellen om bepaalde code uit te voeren. U kunt werkmapgebeurtenissen instellen voor openen, sluiten, vóór opslaan, na opslaan en meer.

Lees onze Workbook_Open Event-tutorial voor meer informatie over het automatisch uitvoeren van macro's wanneer een werkmap wordt geopend.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave