VBA-arbetsbok - Exempel på att använda Excel VBA Workbook Object

Innehållsförteckning

Excel VBA-arbetsbok

VBA Workbook är ett objekt som ingår i Workbooks-objektsamlingen. Vi ser lätt skillnaden mellan en del av objektsamlingen och själva objektet, pluralordet "Workbooks" hänvisar till att det har många "Workbook". I VBA har vi flera andra objekt som kalkylblad, celler och intervall, diagram och former.

I Excel-plattformen kallas Excel-filen som "arbetsbok", särskilt i VBA. Vi kallar det aldrig en fil; snarare kallar vi det en "arbetsbok".

Genom att hänvisa till arbetsboken kan vi göra alla uppgifter relaterade till den. Några av de viktiga uppgifterna är "Öppna arbetsbok", "Spara arbetsbok", "Spara som arbetsbok" och "Stäng arbetsbok." Vi kan välja, aktivera de arbetsböcker som öppnas.

Syntax

Titta nu på vad som är syntaxen för arbetsboken.

Ett index är inget annat än vilken arbetsbok du vill välja. Vi kan hänvisa till arbetsboken efter arbetsbokens nummer eller efter arbetsbokens namn.

Användning av VBA WorkBook Object Code

Exempel 1

Till exempel har jag två filer öppna just nu. Det första arbetsboknamnet är “File 1” och det andra workbook-namnet är “File 2”.

Nu skriver jag koden i den tredje filen. Från den här filen vill jag aktivera arbetsboken som heter "File 1".

Steg 1: Starta makrot genom att skapa en VBA-delprocedur.

Koda:

Underarbetsbok_Exempel1 () Avsluta sub

Steg 2: Välj nu arbetsbokobjektet.

Steg 3: Ange nu arbetsboken som vi vill aktivera.

Koda:

Sub Workbook_Example1 () Workbooks ("File 1 End Sub

Steg 4: När du har angett arbetsbokens namn måste vi också ange filtillägget. Jag har sparat den här arbetsboken som en vanlig arbetsbok, dvs ”xlsx” -arbetsbok.

Koda:

Sub Workbook_Example1 () Workbooks ("File 1.xlsx") End Sub

Steg 5: Nu måste vi bestämma vad vi vill göra med den här arbetsboken. Ange punkt för att se alla alternativ som är tillgängliga med den här arbetsboken.

Steg 6: Nu måste vi aktivera arbetsboken, välj metoden som "Aktivera".

Koda:

Sub Workbook_Example1 () Workbooks ("File 1.xlsx"). Aktivera End Sub

Det spelar ingen roll vilken arbetsbok du är i. Den aktiverar den angivna arbetsboken.

Så snart du väljer arbetsboken blir den en "Aktiv arbetsbok".

Exempel # 2 - Ange värden i arbetsboken

Som jag sa så fort du väljer arbetsboken blir den en aktiv arbetsbok. Med hjälp av Active Workbook kan vi referera till cellen.

I den aktiva arbetsboken måste vi välja arket efter dess namn, annars använder vi ordet Active Sheet.

I det aktiva kalkylbladet måste vi välja cellen med hjälp av Range-objektet.

Koda:

Underarbetsbok_Exempel1 () Arbetsböcker ("Fil 1.xlsx"). Aktivera ActiveWorkbook.ActiveSheet.Range ("A1"). Värde = "Hej" Avsluta sub

När du kör den här koden med F5-tangenten eller manuellt, kommer den att infoga ordet "Hej" i cellen A1 i arbetsboken "File 1.xlsx".

Vi kan också använda koden nedan för att göra samma jobb.

Koda:

Underarbetsbok_Exempel1 () Arbetsböcker ("Fil 1.xlsx"). ActiveSheet.Range ("A1"). Värde = "Hej" Slutunder

Detta infogar också ordet "Hej" i arbetsboken "File 1.xlsx."

Exempel # 3 - Tilldela arbetsbok till variabel

Vi kan också tilldela datatypen som en "arbetsbok" till den deklarerade variabeln. Förklara variabeln som arbetsbok.

Koda:

Underarbetsbok_Exempel2 ()

Dim WB som arbetsbok

Avsluta sub

Nu måste vi ställa in objektvariabeln till arbetsbokens namn med ordet "Set".

Koda:

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

Från och med nu innehåller variabeln "WB" namnet på arbetsboken "File 1.xlsx".

Med hjälp av variabelnamnet kan vi infoga orden.

Koda:

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 som arbetsbok för varje WB i arbetsböcker WB.Spara nästa WB End Sub

När du kör den här koden via F5-tangenten eller manuellt, kommer en popup som ber att spara arbetsboken. Klicka på Ok för att spara.

Använd koden nedan för att stänga alla arbetsböcker utom den du arbetar med.

Koda:

Sub Close_All_Workbooks () Dim WB som arbetsbok för varje WB i arbetsböcker Om WB.Name ThisWorkbook.Name Då WB.Stäng Slut om nästa WB End Sub

Ett popup-fönster kommer innan arbetsboken stängs.

Intressanta artiklar...