VBA-werkboek - Voorbeelden om Excel VBA-werkmapobject te gebruiken

Inhoudsopgave

Excel VBA-werkmap

VBA Workbook is een object dat deel uitmaakt van de Workbooks-objectcollectie. We zien gemakkelijk het verschil tussen een deel van de objectverzameling en het object zelf, het meervoud van "Werkboeken" verwijst naar veel "Werkboeken". In VBA hebben we verschillende andere objecten, zoals werkbladen, cellen en bereiken, grafieken en vormen.

In het Excel-platform wordt Excel-bestand "Werkmap" genoemd, vooral in VBA. We noemen het nooit een bestand; we noemen het eerder een 'werkboek'.

Door naar de werkmap te verwijzen, kunnen we alle bijbehorende taken uitvoeren. Enkele van de belangrijke taken zijn 'Werkmap openen', 'Werkmap opslaan', 'Opslaan als werkmap' en 'Werkmap sluiten'. We kunnen de geopende werkmappen selecteren, activeren.

Syntaxis

Kijk nu naar wat de syntaxis van de werkmap is.

Een index is niets anders dan welke werkmap u wilt selecteren. We kunnen naar de werkmap verwijzen op werkmapnummer of op werkmapnaam.

Gebruik van VBA WorkBook-objectcode

Voorbeeld 1

Ik heb bijvoorbeeld momenteel twee bestanden geopend. De eerste werkmapnaam is "Bestand 1" en de tweede werkmapnaam is "Bestand 2".

Nu schrijf ik de code in het derde bestand. Vanuit dit bestand wil ik de werkmap activeren met de naam "Bestand 1".

Stap 1: Start de macro door een VBA-subprocedure te maken.

Code:

Sub Workbook_Example1 () End Sub

Stap 2: Selecteer nu het werkmapobject.

Stap 3: Voer nu de werkmap in die we willen activeren.

Code:

Sub Workbook_Example1 () Werkmappen ("File 1 End Sub

Stap 4: Na het invoeren van de werkmapnaam, moeten we ook de bestandsextensie invoeren. Ik heb deze werkmap opgeslagen als een gewone werkmap, dwz "xlsx" -werkmap.

Code:

Sub Workbook_Example1 () Werkmappen ("Bestand 1.xlsx") End Sub

Stap 5: Nu moeten we beslissen wat we met deze werkmap willen doen. Voer een punt in om alle beschikbare opties met deze werkmap te zien.

Stap 6: Nu moeten we de werkmap activeren, selecteer de methode als "Activeren".

Code:

Sub Workbook_Example1 () Werkmappen ("Bestand 1.xlsx"). Activeer End Sub

Het maakt niet uit in welke werkmap u zich bevindt. Het activeert de opgegeven werkmap.

Zodra u de werkmap selecteert, wordt deze een 'actieve werkmap'.

Voorbeeld # 2 - Voer waarden in de werkmap in

Zoals ik al zei, zodra je de werkmap selecteert, wordt het een actieve werkmap. Met Active Workbook kunnen we naar de cel verwijzen.

In de actieve werkmap moeten we het blad op naam selecteren, anders gebruiken we het woord Actief blad.

In het actieve werkblad moeten we de cel selecteren met behulp van het Range-object.

Code:

Sub Workbook_Example1 () Werkmappen ("File 1.xlsx"). Activeer ActiveWorkbook.ActiveSheet.Range ("A1"). Value = "Hallo" End Sub

Als u deze code uitvoert met de F5-toets of handmatig, wordt het woord "Hallo" ingevoegd in cel A1 in de werkmap "Bestand 1.xlsx".

We kunnen ook de onderstaande code gebruiken om hetzelfde werk uit te voeren.

Code:

Sub Workbook_Example1 () Werkmappen ("File 1.xlsx"). ActiveSheet.Range ("A1"). Value = "Hallo" End Sub

Hierdoor wordt ook het woord 'Hallo' ingevoegd in de werkmap 'Bestand 1.xlsx'.

Voorbeeld # 3 - Wijs werkboek toe aan variabele

We kunnen het gegevenstype ook als een "werkmap" aan de gedeclareerde variabele toewijzen. Declareer de variabele als Workbook.

Code:

Sub Workbook_Example2 ()

Dim WB als werkboek

Einde Sub

Nu moeten we de objectvariabele instellen op de werkmapnaam door het woord 'Set' te gebruiken.

Code:

Sub Workbook_Example2 () Dim WB As Workbook Set WB = Workbooks ("File 1.xlsx") End Sub

Vanaf nu bevat de variabele “WB” de naam van de werkmap “Bestand 1.xlsx”.

Met behulp van de variabelenaam kunnen we de woorden invoegen.

Code:

Sub Workbook_Example2() Dim WB As Workbook Set WB = Workbooks("File 1.xlsx") WB.Worksheets("Sheet1").Range("A1") = "Hello" WB.Worksheets("Sheet1").Range("B1") = "Good" WB.Worksheets("Sheet1").Range("C1") = "Morning" End Sub

Run this code manually or use shortcut key F5 and see the result, as shown in the below screenshot.

WB.Worksheets("Sheet1").Range("A1") = "Hello"

Here WB is referencing the workbook, in that workbook, we are referencing the worksheet Sheet1 by using the Worksheets object. In that worksheet cell, A1 is equal to the value of “Hello.”

We can also reference the workbook by index number as well. For example, look at the below code.

Code:

Sub Workbook_Example3() Workbooks(1).Activate Workbooks(2).Activate Workbooks(3).Activate End Sub

Here Workbooks (1) means whichever the workbook first on the list, like this similarly Workbooks (2) refers to the second workbook, and Workbooks (3) refers to the third workbook.

The main problem with this index number referencing is we don’t know exactly which workbook activated. It is dangerous to use index numbers.

Example #4 - For Each Loop for Workbook Object

As I told in the beginning, the workbook is a collection object of Workbooks in VBA. Whenever we want to perform the same kind of activity for all the opened workbooks, we need to use For Each loop in VBA.

For Each Loop is the loop for all the objects in VBA. Use the below code to save all the opened workbooks.

Code:

Sub Save_All_Workbooks () Dim WB als werkboek voor elke WB in werkmappen WB.Save Next WB End Sub

Wanneer u deze code via de F5-toets of handmatig uitvoert, komt er een pop-up met de vraag om de werkmap op te slaan. Klik op Ok om op te slaan.

Gebruik de onderstaande code om alle werkmappen te sluiten, behalve degene waaraan u werkt.

Code:

Sub Close_All_Workbooks () Dim WB As Workbook For Every WB In Workbooks If WB.Name ThisWorkbook.Name Then WB.Close End If Next WB End Sub

Er verschijnt een pop-upvenster voordat de werkmap wordt gesloten.

Interessante artikelen...