VBA - Přidání listu do sešitu

VBA - Přidání listu do sešitu

Úvod

V závislosti na výsledku, který chcete dosáhnout, můžete použít:
  • Metoda kopírování => Pro kopii existujícího listu
  • Přidat metodu => Přidání nového prázdného listu do sešitu.

Musíte se také ujistit, že název nového listu je kompatibilní. To znamená, že název listu by neměl být totožný s existujícím názvem nebo nesmí obsahovat žádné zakázané znaky. V obou případech by metody ověřování měly být stejné.

Metoda kopírování

Zkopírujte list. Data a formát nového listu budou identické se zdrojovým listem.

Syntax

výraz. Kopírovat ( před, po )

Výraz může být buď objekt listu nebo listu listu.

Parametry Před a Po jsou volitelné. Můžete zadat pouze jeden z těchto dvou parametrů. Jsou typu Variant a mohou buď reprezentovat umístění listu před nebo za listem, který chcete kopírovat. Pokud je parametr vynechán, list se automaticky zkopíruje do nového sešitu.

Co se pak stane?

Při vytváření nového listu metodou Copy:
  • List je vytvořen na požadovaném místě (před nebo po jiném listu v sešitu)
  • Je přejmenován na základě názvu zdrojového listu. Příklad: List1 => List1 (2)
  • Je identický s kopírovaným listem.
  • Stává se aktivním listem. Pokud je list zkopírován do nového sešitu, stane se aktivním sešitem.

Příklady použití

Kopírovat "List1" po "List3"

 Listy ("List1") Kopírování po: = Pracovní listy ("List3") 

Kopírovat "List4" před "List2":

 Listy ("List4") Kopírovat před: = Listy ("List2") 

Zkopírujte list "rekapitulace" v novém sešitu

 Pracovní listy ("rekapitulace") 

Zkopírujte list indexovaný jako 1 na poslední pozici sešitu bez ohledu na název posledního listu:

 Listy (1) .Kopírovat po: = listy (listy). 

Zkopírujte list indexovaný jako 10 na začátku sešitu bez ohledu na název posledního listu:

 Listy (10). Kopírovat před: = Listy (1) 

Chcete-li zkopírovat více listů aktivního sešitu do nového sešitu:

 Listy (pole ("List1", "List3", "List5")) 

Metoda Přidat

Vytvoří novou tabulku (grafiku nebo makro). Nový list se stane aktivním listem.

Tento nový list neobsahuje žádná data ani formátování.

Syntax

výraz .Add ( Před, Po, Počet, Typ )

Výraz může být buď objekt listu nebo listu listu.

Parametry Před, Po, Počet a Typ jsou volitelné.

Buď a před - Můžete zadat pouze jeden z těchto parametrů. Jsou typu Variant a mohou buď reprezentovat umístění listu před nebo za listem, který chcete kopírovat.

Parametr Count je také Variant. Představuje počet listů, které chcete přidat.

Parametr Typ představuje typ listu, který chcete přidat.

  • xlWorkSheet - přidá pracovní list
  • xlChart - přidá list grafu
  • xlExcel4MacroSheet - přidá list maker (Excel4)
  • xlExcel4IntlMacroSheet - adss makro list
  • xlDialogSheet - přidá dialogový list.

Poznámka: Nezapomeňte přejmenovat parametry nebo syntaxe vrátí chybu níže:

 ActiveWorkbook.Sheets.Add Před: = Pracovní listy (Worksheets.Count),, 1, xlChart 

Příklady použití

Vložte list za poslední list v sešitu:

 Sheets.Add After: = Pracovní listy (Worksheets.Count) 

Přidá tři listy na "první pozici" aktivního sešitu:

 ActiveWorkbook.Sheets.Add Před: = Pracovní listy (1), Počet: = 3 

Přidá list grafu do sešitu s názvem "Wbk18" (Open!) Za list s názvem "Sheet4"

 WorkBooks ("Wbk18") Sheets.Add After: = Listy ("List4"), Typ: = xlChart 

Testování listu

Zkontrolujte, zda list již v sešitu existuje

 'Test si la feuille existe déjà Funkce Feuil_Exist (strWbk As String, strWsh As String) Jako Boolean' Gestionnaire d'erreur On Error Resume Next '"Test" Feuil_Exist = (Sešity (strWbk) .Sheets (strWsh) .Name = strWsh) Funkce End 

Zkontrolujte, zda název souboru obsahuje zakázané znaky

 'Test si la chaine contient un caractère à éviter Funkce Valid_Name (strName As String, strChr As String) Jako logický Dim i jako bajt, Tb_Car () jako řetězec, strProhib As Stringhib = "/: *?" "|" 'Liste des caractères à éviter Tb_Car = Split (StrConv (strProhib, vbUnicode), Chr $ (0)' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 0 0 0 0 0 0 0 ) 'En effet, la chaine se terminant par un Chr (0) il conient d'exclure ce dernier caractère Pro i = LBound (Tb_Car) Pro UBound (Tb_Car) - 1' Test si la chaîne contient un caractère prohibé Pokud InStr (strName, Tb_Car (i))> 0 Pak 'Si oui: Return False Valid_Name = False' ET Retourne le caractère prohibé strChr = Tb_Car (i) Konec Funkce End If Next i 'Si OK: Return True Valid_Name = True End Function 

Volání funkce ověření

Kód je stejný pro metodu Kopírovat nebo Přidat.
 Sub Principale () Dim strNewName Jako řetězec, strCara jako řetězec strNewName = "NewSheet" Pokud Valid_Name (strNewName, strCara) = False Pak MsgBox "Le nom:" & strNewName & "est invalide". & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Ukončit Sub End If Pokud je Feuil_Exist (ThisWorkbook.Name, strNewName) = True Pak MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End If ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1") Kopírovat po: = Listy (listy). ActiveSheet.Name = strNewName End Sub 

Několik užitečných tipů pro Office 2013

Kancelář 2013 přináší dvě doplňující metody k těm, které jsme viděli dříve:
  • Zkopírujte rozsah buněk na list a více listů
  • Metoda Add2 pro kolekce objektů grafů.

Kopírovat oblast buňky pomocí metody FillAcrossSheets

Tato metoda je k dispozici pouze pro sadu Office 2013. Chcete kopírovat rozsah buněk z "List1" do "List3", "List5" a "List7".

 Listy = Pole ("List3", "List5", "List7") Listy (listy) .FillAcrossSheets Pracovní listy ("List1") Rozsah ("A1: C5") 

Parametry této metody jsou:

  • Rozsah: Vyžadováno
  • Typ: Volitelný
  • xlFillWithAll: Kopírování obsahu a formátů.
  • xlFillWithContents: Zkopírujte obsah.
  • xlFillWithFormats: Kopírování formátů.

Metoda Add2

Tato metoda je k dispozici pouze pro sadu Office 2013. Tato metoda se vztahuje na kolekce objektů grafů a vrátí chybu " Runtime " při použití s ​​objekty listy a listy. Žádné další informace na webu Microsoft.com kromě syntaxe:

výraz .Add ( Před, Po, Počet, NovýLayout )

Výraz představuje objekt listu

Parametry jsou identické s metodou Add, jednoduše nahraďte parametr Type pomocí funkce NewLayout. Pokud je NewLayout nastaven na hodnotu True, bude grafika vložena pomocí nových pravidel.

Předchozí Článek Následující Článek

Nejlepší Tipy