Denna handledning kommer att diskutera hur du lägger till / infogar kalkylblad med VBA.
Lägg till blad
Detta enkla makro lägger till ett blad före ActiveSheet:
123 | Sub Add ()Ark. Lägg tillAvsluta Sub |
Efter att du har lagt in ett ark blir det nya bladet ActiveSheet. Du kan sedan använda ActiveSheet -objektet för att arbeta med det nya bladet (längst ner i den här artikeln visar vi hur du sätter in ett nytt ark direkt i en variabel).
1 | ActiveSheet.Name = "NewSheet" |
Lägg till blad med namn
Du kan också definiera ett arknamn när du skapar det nya bladet:
1 | Sheets.Add.Name = "NewSheet" |
Skapa nytt ark med namn från en cell
Eller använd ett cellvärde för att namnge ett nytt ark:
1 | Sheets.Add.Name = intervall ("a3"). Värde |
Lägg till blad före / efter ett annat ark
Du kanske också vill välja var det nya bladet ska infogas. Du kan använda Egenskaperna Efter eller Före för att infoga ett blad på en specifik plats i arbetsboken.
Infoga blad efter ett annat blad
Denna kod kommer att infoga det nya arket EFTER ett annat blad:
1 | Sheets.Add After: = Sheets ("Inmatning") |
Detta kommer att infoga ett nytt ark efter ett annat blad och ange bladets namn:
1 | Sheets.Add (After: = Sheets ("Input")). Name = "NewSheet" |
Lägg märke till den extra parentes som krävs i det andra exemplet (det första exemplet genererar ett fel om den andra parentesen läggs till).
eller innan:
1 | Sheets.Add (Before: = Sheets ("Input")). Name = "NewSheet" |
I dessa exempel namngav vi uttryckligen det blad som användes för att bestämma bladets placering. Ofta vill du istället använda bladindexnumret så att du kan infoga arket i början eller slutet av arbetsboken:
Lägg till blad i slutet av arbetsboken
Så här lägger du till ett ark i slutet av arbetsboken:
1 | Sheets.Add After: = Sheets (Sheets.Count) |
Lägg till blad till början av arbetsboken:
Så här lägger du till ett blad i början av arbetsboken:
1 | Sheets.Add (Before: = Sheets (1)). Name = "FirstSheet" |
Lägg till blad i variabel
Denna kod tilldelar det nya bladet en variabel när arket skapas:
12 | Dim ws Som arbetsbladAnge ws = Sheets.Add |
Härifrån kan du referera till det nya bladet med variabeln 'ws':
1 | ws.name = "VarSheet" |
Fler exempel på tilläggsark
Skapa blad om det inte redan finns
Du kanske bara vill skapa ett ark om det inte redan finns.
Skapa kalkylblad från listan över namn
Följande rutin kommer att titta på innehållet i en enda kolumn med Excel -kalkylblad i den aktuella arbetsboken med dessa namn. Det ringer till en annan funktion för att se om ett blad med det namnet redan finns, och i så fall skapas det inte.
1234567891011121314151617181920212223242526 | Privat underkommandoButton1_Click ()Ring CreateWorksheets (Sheets ("Sheet2"). Range ("A1: a10"))Avsluta SubSub CreateWorksheets (Names_Of_Sheets As Range)Dim No_Of_Sheets_to_be_Added As IntegerDim Sheet_Name As StringDim i As IntegerNo_Of_Sheets_to_be_Added = Names_Of_Sheets.Rows.CountFör i = 1 Till No_Of_Sheets_to_be_AddedSheet_Name = Names_Of_Sheets.Cells (i, 1) .Värde'Lägg bara till blad om det inte redan finns och namnet är längre än noll teckenOm (Sheet_Exists (Sheet_Name) = False) And (Sheet_Name "") DåWorksheets.Add (). Name = Sheet_NameAvsluta omNästa iAvsluta Sub |
1234567891011121314 | Function Sheet_Exists (WorkSheet_Name As String) As BooleanDim Arbetsblad som arbetsbladSheet_Exists = FalsktFör varje arbetsblad i ThisWorkbook.WorksheetsOm Work_sheet.Name = WorkSheet_Name DåSheet_Exists = SantAvsluta omNästaAvsluta funktion |
Så om vi har följande text i cellerna A1: A30 i blad 2:
Följande ark skapas:
Observera att även om "Dog" visas två gånger, skapas bara ett ark.
För att ladda ner .XLS -filen för den här självstudien, klicka här.