Werkmapobject gebruiken in Excel VBA (openen, sluiten, opslaan, instellen)

In deze zelfstudie behandel ik het werken met werkmappen in Excel met behulp van VBA.

In Excel is een 'Werkmap' een object dat deel uitmaakt van de verzameling 'Werkmappen'. Binnen een werkmap heb je verschillende objecten zoals werkbladen, grafiekbladen, cellen en bereiken, grafiekobjecten, vormen, enz.

Met VBA kunt u veel dingen doen met een werkmapobject - zoals een specifieke werkmap openen, werkmappen opslaan en sluiten, nieuwe werkmappen maken, de eigenschappen van de werkmap wijzigen, enz.

Dus laten we beginnen.

Alle codes die ik in deze tutorial noem, moeten in de Visual Basic Editor worden geplaatst. Ga naar het gedeelte 'Waar de VBA-code plaatsen' om te weten hoe het werkt.

Als je geïnteresseerd bent om VBA op een gemakkelijke manier te leren, bekijk dan mijn Online Excel VBA-training.

Verwijzen naar een werkmap met VBA

Er zijn verschillende manieren om in VBA naar een werkmapobject te verwijzen. De methode die u kiest, hangt af van wat u wilt doen. In dit gedeelte bespreek ik de verschillende manieren om naar een werkmap te verwijzen, samen met enkele voorbeeldcodes.

Werkmapnamen gebruiken

Als u de exacte naam heeft van de werkmap waarnaar u wilt verwijzen, kunt u de naam in de code gebruiken.

Laten we beginnen met een eenvoudig voorbeeld.

Als u twee werkmappen open hebt staan ​​en u wilt de werkmap met de naam -Voorbeelden.xlsx activeren, dan kunt u de onderstaande code gebruiken:

Sub ActivateWorkbook() Workbooks("Examples.xlsx").Activate End Sub

Merk op dat u de bestandsnaam samen met de extensie moet gebruiken als het bestand is opgeslagen. Als het niet is opgeslagen, kunt u de naam gebruiken zonder de bestandsextensie.

Als u niet zeker weet welke naam u moet gebruiken, kunt u hulp krijgen van de Projectverkenner.

Als u een werkmap wilt activeren en een specifieke cel in een werkblad in die werkmap wilt selecteren, moet u het volledige adres van de cel opgeven (inclusief de werkmap en de naam van het werkblad).

Sub ActivateWorkbook() Workbooks("Examples.xlsx").Worksheets("Sheet1").Activate Range("A1").Select End Sub

De bovenstaande code activeert eerst Blad1 in de werkmap Voorbeelden.xlsx en selecteert vervolgens cel A1 in het blad.

Je zult vaak een code zien waar een verwijzing naar een werkblad of een cel/bereik wordt gemaakt zonder naar de werkmap te verwijzen. Dit gebeurt wanneer u verwijst naar het werkblad / de bereiken in dezelfde werkmap waarin de code staat en die ook de actieve werkmap is. In sommige gevallen moet u echter de werkmap specificeren om ervoor te zorgen dat de code werkt (meer hierover in de sectie ThisWorkbook).

Indexnummers gebruiken

U kunt de werkmappen ook raadplegen op basis van hun indexnummer.

Als u bijvoorbeeld drie werkmappen hebt geopend, toont de volgende code u de namen van de drie werkmappen in een berichtvenster (een voor een).

Sub WorkbookName() MsgBox Workbooks(1).Name MsgBox Workbooks(2).Name MsgBox Workbooks(3).Name End Sub

De bovenstaande code gebruikt MsgBox - wat een functie is die een berichtvenster toont met de opgegeven tekst/waarde (in dit geval de naam van de werkmap).

Een van de problemen die ik vaak heb met het gebruik van indexnummers met werkboeken, is dat je nooit weet welke de eerste werkmap is en welke de tweede, enzovoort. Om zeker te zijn, zou u de code moeten uitvoeren zoals hierboven weergegeven of iets dergelijks om door de open werkmappen te bladeren en hun indexnummer te kennen.

Excel behandelt de werkmap die als eerste is geopend met het indexnummer als 1, en de volgende als 2 enzovoort.

Ondanks dit nadeel kan het gebruik van indexnummers handig zijn. Als u bijvoorbeeld alle geopende werkmappen wilt doorlopen en ze allemaal wilt opslaan, kunt u de indexnummers gebruiken. In dit geval, aangezien u wilt dat dit met alle werkmappen gebeurt, maakt u zich geen zorgen over hun individuele indexnummers.

De onderstaande code zou door alle open werkmappen lopen en alles sluiten, behalve de werkmap met deze VBA-code.

Sub CloseWorkbooks() Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks(i).Name ThisWorkbook.Name Then Workbooks(i).Close End If Next i End Sub

De bovenstaande code telt het aantal open werkmappen en doorloopt vervolgens alle werkmappen met behulp van de For Each-lus.

Het gebruikt de IF-voorwaarde om te controleren of de naam van de werkmap dezelfde is als die van de werkmap waarin de code wordt uitgevoerd.

Als het geen overeenkomst is, sluit het de werkmap en gaat naar de volgende.

Merk op dat we de lus van WbCount naar 1 hebben uitgevoerd met een stap van -1. Dit gebeurt zoals bij elke lus, het aantal openstaande werkmappen neemt af.

Dit werkboek wordt in detail besproken in de latere sectie.

ActiveWorkbook gebruiken

ActiveWorkbook, zoals de naam al doet vermoeden, verwijst naar de werkmap die actief is.

De onderstaande code toont u de naam van de actieve werkmap.

Sub ActiveWorkbookName() MsgBox ActiveWorkbook.Name End Sub

Wanneer u VBA gebruikt om een ​​andere werkmap te activeren, zou het ActiveWorkbook-gedeelte in de VBA daarna gaan verwijzen naar de geactiveerde werkmap.

Hier is een voorbeeld hiervan.

Als u een actieve werkmap hebt en u voegt de volgende code erin en voert deze uit, dan zou eerst de naam van de werkmap met de code worden weergegeven en vervolgens de naam Voorbeelden.xlsx (die door de code wordt geactiveerd).

Sub ActiveWorkbookName() MsgBox ActiveWorkbook.Name Workbooks("Examples.xlsx").Activate MsgBox ActiveWorkbook.Name End Sub

Houd er rekening mee dat wanneer u een nieuwe werkmap maakt met VBA, die nieuw gemaakte werkmap automatisch de actieve werkmap wordt.

Dit werkboek gebruiken

ThisWorkbook verwijst naar de werkmap waarin de code wordt uitgevoerd.

Elke werkmap zou een ThisWorkbook-object als onderdeel ervan hebben (zichtbaar in de Projectverkenner).

'ThisWorkbook' kan zowel reguliere macro's (vergelijkbaar met degene die we in modules toevoegen) als gebeurtenisprocedures opslaan. Een gebeurtenisprocedure is iets dat wordt geactiveerd op basis van een gebeurtenis, zoals dubbelklikken op een cel, een werkmap opslaan of een werkblad activeren.

Elke gebeurtenisprocedure die u in deze 'ThisWorkbook' opslaat, is beschikbaar in de hele werkmap, in vergelijking met de gebeurtenissen op bladniveau die beperkt zijn tot alleen de specifieke bladen.

Als u bijvoorbeeld dubbelklikt op het ThisWorkbook-object in de Projectverkenner en de onderstaande code erin kopieert en plakt, wordt het celadres weergegeven wanneer u dubbelklikt op een van de cellen in de hele werkmap.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) MsgBox Target.Address End Sub

Hoewel de belangrijkste rol van ThisWorkbook is om de gebeurtenisprocedure op te slaan, kunt u deze ook gebruiken om te verwijzen naar de werkmap waarin de code wordt uitgevoerd.

De onderstaande code retourneert de naam van de werkmap waarin de code wordt uitgevoerd.

Sub ThisWorkbookName() MsgBox ThisWorkbook.Name End Sub

Het voordeel van het gebruik van ThisWorkbook (over ActiveWorkbook) is dat het in alle gevallen zou verwijzen naar dezelfde werkmap (degene die de code bevat). Dus als u een VBA-code gebruikt om een ​​nieuwe werkmap toe te voegen, zou de ActiveWorkbook veranderen, maar ThisWorkbook zou nog steeds verwijzen naar degene met de code.

Een nieuw werkmapobject maken

Met de volgende code wordt een nieuwe werkmap gemaakt.

Sub CreateNewWorkbook() Workbooks.Add End Sub

Wanneer u een nieuwe werkmap toevoegt, wordt deze de actieve werkmap.

De volgende code voegt een nieuwe werkmap toe en toont u vervolgens de naam van die werkmap (wat de standaard Book1-typenaam zou zijn).

Sub CreateNewWorkbook() Workbooks.Add MsgBox ActiveWorkbook.Name End Sub

Open een werkmap met VBA

U kunt VBA gebruiken om een ​​specifieke werkmap te openen als u het bestandspad van de werkmap kent.

De onderstaande code opent de werkmap - Voorbeelden.xlsx die zich in de map Documenten op mijn systeem bevindt.

Sub OpenWorkbook() Workbooks.Open ("C:\Users\sumit\Documents\Examples.xlsx") End Sub

Als het bestand zich in de standaardmap bevindt, de map waarin VBA standaard nieuwe bestanden opslaat, kunt u gewoon de naam van de werkmap opgeven - zonder het volledige pad.

Sub OpenWorkbook() Workbooks.Open ("Voorbeelden.xlsx") End Sub

Als de werkmap die u probeert te openen niet bestaat, ziet u een foutmelding.

Om deze fout te voorkomen, kunt u een paar regels aan uw code toevoegen om eerst te controleren of het bestand bestaat of niet en als het bestaat, probeer het dan te openen.

De onderstaande code controleert de bestandslocatie en als deze niet bestaat, wordt een aangepast bericht weergegeven (niet het foutbericht):

Sub OpenWorkbook() If Dir("C:\Users\sumit\Documents\Examples.xlsx") "" Dan Workbooks.Open ("C:\Users\sumit\Documents\Examples.xlsx") Else MsgBox "Het bestand heeft geen bestaat niet" End If End Sub

U kunt ook het dialoogvenster Openen gebruiken om het bestand te selecteren dat u wilt openen.

Sub OpenWorkbook() Bij Fout Hervatten Volgende Dim FilePath As String FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub

De bovenstaande code opent het dialoogvenster Openen. Wanneer u een bestand selecteert dat u wilt openen, wordt het bestandspad toegewezen aan de variabele FilePath. Workbooks.Open gebruikt vervolgens het bestandspad om het bestand te openen.

Als de gebruiker een bestand niet opent en op de knop Annuleren klikt, wordt FilePath False. Om in dit geval een fout te voorkomen, hebben we de instructie 'On Error Resume Next' gebruikt.

Verwant: Leer alles over foutafhandeling in Excel VBA

Een werkmap opslaan

Gebruik de onderstaande code om de actieve werkmap op te slaan:

Sub SaveWorkbook() ActiveWorkbook.Save End Sub

Deze code werkt voor de werkmappen die al eerder zijn opgeslagen. Omdat de werkmap de bovenstaande macro bevat, en als deze niet is opgeslagen als een .xlsm- (of .xls) -bestand, verliest u de macro wanneer u deze de volgende keer opent.

Als u de werkmap voor de eerste keer opslaat, wordt er een prompt weergegeven zoals hieronder weergegeven:

Als je voor het eerst opslaat, kun je beter de optie ‘Opslaan’ gebruiken.

De onderstaande code zou de actieve werkmap opslaan als een .xlsm-bestand op de standaardlocatie (de documentmap in mijn systeem).

Sub SaveWorkbook() ActiveWorkbook.SaveAs Filename:="Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub

Als u wilt dat het bestand op een specifieke locatie wordt opgeslagen, moet u dat vermelden in de waarde Bestandsnaam. De onderstaande code slaat het bestand op mijn bureaublad op.

Sub SaveWorkbook() ActiveWorkbook.SaveAs Filename:="C:\Users\sumit\Desktop\Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub

Als u wilt dat de gebruiker de optie krijgt om de locatie te selecteren om het bestand op te slaan, kunt u het dialoogvenster Opslaan gebruiken. De onderstaande code toont het dialoogvenster Saveas en stelt de gebruiker in staat om de locatie te selecteren waar het bestand moet worden opgeslagen.

Sub SaveWorkbook() Dim FilePath As String FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Filename:=FilePath & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub

Merk op dat in plaats van FileFormat:=xlOpenXMLWorkbookMacroEnabled te gebruiken, u ook FileFormat:=52 kunt gebruiken, waarbij 52 de code xlOpenXMLWorkbookMacroEnabled is.

Alle geopende werkmappen opslaan

Als u meer dan één werkmap hebt geopend en u wilt alle werkmappen opslaan, kunt u de onderstaande code gebruiken:

Sub SaveAllWorkbooks() Dim wb As Workbook For Each wb In Workbooks wb.Save Next wb End Sub

Het bovenstaande slaat alle werkmappen op, inclusief de werkmappen die nog nooit zijn opgeslagen. De werkmappen die nog niet eerder zijn opgeslagen, worden op de standaardlocatie opgeslagen.

Als u alleen die werkmappen wilt opslaan die eerder zijn opgeslagen, kunt u de onderstaande code gebruiken:

Sub SaveAllWorkbooks() Dim wb As Workbook For Each wb In Workbooks If wb.Path "" Dan wb.Save End If Next wb End Sub

Alle werkmappen opslaan en sluiten

Als u alle werkmappen wilt sluiten, behalve de werkmap met de huidige code erin, kunt u de onderstaande code gebruiken:

Sub CloseandSaveWorkbooks() Dim wb As Workbook For Each wb In Workbooks If wb.Name ThisWorkbook.Name Then wb.Close SaveChanges:=True End If Next wb End Sub

De bovenstaande code zou alle werkmappen sluiten (behalve de werkmap met de code - ThisWorkbook). Als er wijzigingen in deze werkmappen zijn, worden de wijzigingen opgeslagen. Als er een werkmap is die nog nooit is opgeslagen, wordt het dialoogvenster Opslaan als weergegeven.

Bewaar een kopie van de werkmap (met tijdstempel)

Wanneer ik met complexe gegevens en dashboards in Excel-werkmappen werk, maak ik vaak verschillende versies van mijn werkmappen. Dit is handig voor het geval er iets misgaat met mijn huidige werkmap. Ik zou er op zijn minst een kopie van hebben opgeslagen met een andere naam (en ik zou alleen het werk verliezen dat ik deed nadat ik een kopie had gemaakt).

Hier is de VBA-code waarmee een kopie van uw werkmap wordt gemaakt en op de opgegeven locatie wordt opgeslagen.

Sub CreateaCopyofWorkbook() ThisWorkbook.SaveCopyAs Bestandsnaam:="C:\Users\sumit\Desktop\BackupCopy.xlsm" End Sub

De bovenstaande code slaat elke keer dat u deze macro uitvoert een kopie van uw werkmap op.

Hoewel dit geweldig werkt, zou ik me meer op mijn gemak voelen als ik verschillende kopieën had opgeslagen wanneer ik deze code uitvoer. De reden dat dit belangrijk is, is dat als ik een onbedoelde fout maak en deze macro uitvoer, het het werk met de fouten zal opslaan. En ik zou geen toegang hebben tot het werk voordat ik de fout maakte.

Om dergelijke situaties aan te pakken, kunt u de onderstaande code gebruiken die elke keer dat u het opslaat een nieuwe kopie van het werk opslaat. En het voegt ook een datum en tijdstempel toe als onderdeel van de naam van de werkmap. Dit kan u helpen eventuele fouten op te sporen, aangezien u nooit een van de eerder gemaakte back-ups kwijtraakt.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ThisWorkbook.SaveCopyAs Filename:="C:\Users\sumit\Desktop\BackupCopy" & Format(Now(), "dd-mm-yy-hh-mm-ss -AMPM") & ".xlsm" Einde Sub

De bovenstaande code maakt elke keer dat u deze macro uitvoert een kopie en voegt een datum-/tijdstempel toe aan de naam van de werkmap.

Maak een nieuwe werkmap voor elk werkblad

In sommige gevallen hebt u mogelijk een werkmap met meerdere werkbladen en wilt u voor elk werkblad een werkmap maken.

Dit kan het geval zijn wanneer u maand-/kwartaalrapporten in één werkmap hebt en u deze wilt opsplitsen in één werkmap voor elk werkblad.

Of, als u afdelingsgewijze rapporten heeft en deze wilt opsplitsen in afzonderlijke werkmappen, zodat u deze afzonderlijke werkmappen naar de afdelingshoofden kunt sturen.

Hier is de code die een werkmap voor elk werkblad maakt, deze dezelfde naam geeft als die van het werkblad en deze opslaat in de opgegeven map.

Sub CreateWorkbookforWorksheets() Dim ws As Worksheet Dim wb As Workbook For Each ws In ThisWorkbook.Worksheets Set wb = Workbooks.Add ws.Copy Before:=wb.Sheets(1) Application.DisplayAlerts = False wb.Sheets(2).Delete Application.DisplayAlerts = True wb.SaveAs "C:\Users\sumit\Desktop\Test\" & ws.Name & ".xlsx" wb.Close Volgende ws End Sub

In de bovenstaande code hebben we twee variabelen 'ws' en 'wb' gebruikt.

De code doorloopt elk werkblad (met behulp van de For Each Next-lus) en maakt er een werkmap voor. Het gebruikt ook de kopieermethode van het werkbladobject om een ​​kopie van het werkblad in de nieuwe werkmap te maken.

Merk op dat ik de SET-instructie heb gebruikt om de 'wb'-variabele toe te wijzen aan een nieuwe werkmap die door de code is gemaakt.

U kunt deze techniek gebruiken om een ​​werkmapobject aan een variabele toe te wijzen. Dit wordt behandeld in de volgende sectie.

Werkmapobject toewijzen aan een variabele

In VBA kunt u een object aan een variabele toewijzen en vervolgens de variabele gebruiken om naar dat object te verwijzen.

In de onderstaande code gebruik ik bijvoorbeeld VBA om een ​​nieuwe werkmap toe te voegen en vervolgens die werkmap toe te wijzen aan de variabele wb. Om dit te doen, moet ik de SET-instructie gebruiken.

Nadat ik de werkmap aan de variabele heb toegewezen, worden alle eigenschappen van de werkmap ook beschikbaar gemaakt voor de variabele.

Sub AssigntoVariable() Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs Filename:="C:\Users\sumit\Desktop\Examples.xlsx" End Sub

Merk op dat de eerste stap in de code is om 'wb' te declareren als een variabele van het werkmaptype. Dit vertelt VBA dat deze variabele het werkmapobject kan bevatten.

De volgende instructie gebruikt SET om de variabele toe te wijzen aan de nieuwe werkmap die we toevoegen. Zodra deze toewijzing is voltooid, kunnen we de wb-variabele gebruiken om de werkmap op te slaan (of er iets anders mee te doen).

Door Open Werkmappen bladeren

We hebben hierboven al een paar voorbeeldcodes gezien die gebruik maakten van looping in de code.

In deze sectie zal ik verschillende manieren uitleggen om door open werkmappen te bladeren met VBA.

Stel dat u alle geopende werkmappen wilt opslaan en sluiten, behalve degene met de code erin, dan kunt u de onderstaande code gebruiken:

Sub CloseandSaveWorkbooks() Dim wb As Workbook For Each wb In Workbooks If wb.Name ThisWorkbook.Name Then wb.Close SaveChanges:=True End If Next wb End Sub

De bovenstaande code gebruikt de For Each-lus om elke werkmap in de Workbooks-verzameling te doorlopen. Om dit te doen, moeten we eerst 'wb' declareren als de variabele van het werkmaptype.

In elke luscyclus wordt elke werkmapnaam geanalyseerd en als deze niet overeenkomt met de naam van de werkmap met de code, wordt deze gesloten nadat de inhoud is opgeslagen.

Hetzelfde kan ook worden bereikt met een andere lus zoals hieronder weergegeven:

Sub CloseWorkbooks() Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks(i).Name ThisWorkbook.Name Then Workbooks(i).Close SaveChanges:=True End If Next i End Sub

De bovenstaande code gebruikt de For Next-lus om alle werkmappen te sluiten, behalve degene die de code bevat. In dit geval hoeven we geen werkmapvariabele te declareren, maar in plaats daarvan moeten we het totale aantal open werkmappen tellen. Als we de telling hebben, gebruiken we de For Next-lus om door elke werkmap te gaan. Ook gebruiken we in dit geval het indexnummer om naar de werkmappen te verwijzen.

Merk op dat we in de bovenstaande code van WbCount naar 1 lopen met stap -1. Dit is nodig omdat bij elke lus de werkmap wordt gesloten en het aantal werkmappen met 1 wordt verminderd.

Fout tijdens het werken met het werkmapobject (Runtime-fout '9')

Een van de meest voorkomende fouten die u kunt tegenkomen bij het werken met werkmappen is - Runtime-fout '9' - Subscript buiten bereik.

Over het algemeen zijn VBA-fouten niet erg informatief en laten ze het vaak aan u over om erachter te komen wat er mis is gegaan.

Hier zijn enkele van de mogelijke redenen die tot deze fout kunnen leiden:

  • De werkmap die u probeert te openen, bestaat niet. Als ik bijvoorbeeld probeer toegang te krijgen tot de vijfde werkmap met Workbooks(5), en er zijn slechts 4 werkmappen open, dan krijg ik deze foutmelding.
  • Als u een verkeerde naam gebruikt om naar de werkmap te verwijzen. Als de naam van uw werkmap bijvoorbeeld Voorbeelden.xlsx is en u Voorbeeld.xlsx gebruikt. dan zal het u deze fout tonen.
  • Als u geen werkmap hebt opgeslagen en u de extensie gebruikt, krijgt u deze foutmelding. Als de naam van uw werkmap bijvoorbeeld Boek1 is en u de naam Boek1.xlsx gebruikt zonder deze op te slaan, krijgt u deze foutmelding.
  • De werkmap die u probeert te openen, is gesloten.

Een lijst met alle geopende werkmappen krijgen

Als u een lijst wilt krijgen van alle open werkmappen in de huidige werkmap (de werkmap waarin u de code uitvoert), kunt u de onderstaande code gebruiken:

Sub GetWorkbookNames() Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range("A1").Activate For i = 1 To wbcount Range("A1").Offset(i - 1, 0). Waarde = Werkmappen(i).Naam Volgende i Einde Sub

De bovenstaande code voegt een nieuw werkblad toe en vermeldt vervolgens de naam van alle geopende werkmappen.

Als je ook hun bestandspad wilt krijgen, kun je de onderstaande code gebruiken:

Sub GetWorkbookNames() Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range("A1").Activate For i = 1 To wbcount Range("A1").Offset(i - 1, 0). Waarde = Workbooks(i).Pad & "\" & Workbooks(i).Name Next i End Sub

Open de opgegeven werkmap door te dubbelklikken op de cel

Als u een lijst met bestandspaden voor Excel-werkmappen hebt, kunt u de onderstaande code gebruiken om eenvoudig op de cel met het bestandspad te dubbelklikken en die werkmap wordt geopend.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Workbooks.Open Target.Value End Sub

Deze code zou in het codevenster van ThisWorkbook worden geplaatst.

Om dit te doen:

  • Dubbelklik op het ThisWorkbook-object in de projectverkenner. Houd er rekening mee dat het ThisWorkbook-object zich in de werkmap moet bevinden waar u deze functionaliteit wilt hebben.
  • Kopieer en plak de bovenstaande code.

Als u nu het exacte pad heeft van de bestanden die u wilt openen, kunt u dat doen door eenvoudig op het bestandspad te dubbelklikken en VBA zou die werkmap onmiddellijk openen.

Waar de VBA-code te plaatsen

Vraagt ​​u zich af waar de VBA-code naartoe gaat in uw Excel-werkmap?

Excel heeft een VBA-backend, de VBA-editor. U moet de code kopiëren en plakken in het codevenster van de VB Editor-module.

Hier zijn de stappen om dit te doen:

  1. Ga naar het tabblad Ontwikkelaars.
  2. Klik op de Visual Basic-optie. Dit opent de VB-editor in de backend.
  3. Klik in het deelvenster Projectverkenner in de VB-editor met de rechtermuisknop op een object voor de werkmap waarin u de code wilt invoegen. Als u de Projectverkenner niet ziet, gaat u naar het tabblad Weergave en klikt u op Projectverkenner.
  4. Ga naar Invoegen en klik op Module. Hiermee wordt een moduleobject voor uw werkmap ingevoegd.
  5. Kopieer en plak de code in het modulevenster.

Misschien vind je de volgende Excel VBA-zelfstudies misschien ook leuk:

  • Hoe maak je een macro opnemen in Excel
  • Een door de gebruiker gedefinieerde functie maken in Excel.
  • Invoegtoepassing maken en gebruiken in Excel
  • Macro's hervatten door deze in de persoonlijke macrowerkmap te plaatsen.
  • Haal de lijst met bestandsnamen uit een map in Excel (met en zonder VBA).
  • Hoe Excel VBA InStr-functie te gebruiken (met praktische VOORBEELDEN).
  • Gegevens sorteren in Excel met VBA (een stapsgewijze handleiding).

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

wave wave wave wave wave