Skapa nya arbetsböcker med VBA i Microsoft Excel

Anonim

Det kan finnas tillfällen där du måste skapa en ny arbetsbok med ett visst antal ark via en VBA -kod eller ett makro. Här är ett enkelt makro som låter dig skapa en ny arbetsbok> öppna och sedan spara med högst 255 nya kalkylblad. I detta exempelmakro skapar vi en ny arbetsbok med 10 kalkylblad.

Alternativ Explicit

Sub create_workbook ()
Dim wb Som arbetsbok
Ange wb = NewWorkbook (10)
Avsluta Sub

Funktion NewWorkbook (wsCount As Integer) Som arbetsbok
Dim OriginalWorksheetCount As Long
Ange NewWorkbook = Ingenting
Om wsCount 255 Avsluta sedan funktionen
OriginalWorksheetCount = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = wsCount
Ange NewWorkbook = Workbooks.Add
Application.SheetsInNewWorkbook = OriginalWorksheetCount
Avsluta funktion

Kodförklaring:

Först har vi ett förfarande som heter "skapa_arbetsbok”. I denna procedur har vi en variabel wb som arbetsbok och vi kallar funktionen NewWorkbook genom denna variabel. Så den nya funktionen kallas och wscount är satt till 10 vilket är antalet kalkylblad i den nya arbetsboken.

Sedan går vi till den kallade funktionen som är Funktion NewWorkbook (wsCount som heltal) som arbetsbok. Värdet för wsCount som är 10 överförs från underdelen create_workbook.

Ange NewWorkbook = Ingenting

Först ställs NewWorkbook in på ingenting så att vi kan rensa bort alla andra värden som kan tilldelas den i alla tidigare koder.

Om wsCount 255 avslutar du funktionen

Därefter måste vi kontrollera om värdet som överförs från subben är mindre än 1 eller större än 255. Om svaret är ja på någon av dessa kontroller, avsluta funktionen.
OriginalWorksheetCount = Application.SheetsInNewWorkbook

Det finns en parameter på sidan Excel -alternativ där antalet ark som ska ingå i en ny arbetsbok är inställt. Vi överför detta värde till variabeln OriginalWorksheetCount.Variabeln kommer att hålla standardantalet ark som redan var förinställda i excelalternativen.

Application.SheetsInNewWorkbook = wsCount

Sedan tilldelar vi värdet av wsCount som skickas vidare från suben till parametern i excelalternativen för antalet ark som ska inkluderas i en ny arbetsbok. Så nu kommer denna parameter att ändras från det gamla värdet till 10. Det gamla värdet kan vara 1 eller 3 eller något annat nummer som användaren har angett.

Ange NewWorkbook = Workbooks.Add

Vi skapar en ny arbetsbok som tilldelas NewWorkbook. Denna nya arbetsbok skapas med det antal ark som anges i wsCount. Du kommer att se en ny arbetsbok med 10 ark med titeln Sheet1 to Sheet10. Se bilden nedan för den nya filen Book3 som har skapats.

Bilden nedan visar hur många ark som skapades i den nya arbetsboken.

Siffran 10 visas också i Application.SheetsInNewWorkbook -parametern i Excel -alternativ som på bilden nedan -

Application.SheetsInNewWorkbook = OriginalWorksheetCount

TheApplication.SheetsInNewWorkbook returneras till sitt ursprungliga nummer som fanns innan wsCount angavs. Så om det ursprungliga talet var 1 eller 3 kommer denna parameter nu att återgå till det numret.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postsajt