VBA - Lap hozzáadása a munkafüzethez

VBA - Lap hozzáadása a munkafüzethez

Bevezetés

Az elérni kívánt eredménytől függően használhatja a következőt:
  • Másolási módszer => Egy meglévő lap másolatához
  • Módszer hozzáadása => Új üres lap hozzáadása a munkafüzethez.

Azt is meg kell győződnie arról, hogy az új lap neve megfelel-e. Ez azt jelenti, hogy a lap neve nem lehet azonos a létezővel, vagy nem tartalmazhat tiltott karaktereket. Mindkét esetben az ellenőrzési módszereknek azonosnak kell lenniük.

Másolási módszer

Másoljon egy lapot. Az új lap adatai és formája megegyezik a forráslapmal.

Szintaxis

kifejezés .Copy ( előtt, után )

Az expresszió lehet egy lap vagy munkalap objektum.

Az Első és utáni paraméterek opcionálisak. A két paraméter közül csak az egyiket adhatja meg. Ezek a változat típusai, és a lapot a másolás előtt vagy után is megjeleníthetik. Ha a paraméter kihagyásra kerül, a lapot automatikusan átmásolja egy új munkafüzetbe.

Mi történik akkor?

Új lap létrehozása a Másolás módszerrel:
  • A lapot a kívánt helyen hozza létre (a munkafüzetben lévő másik lap előtt vagy után)
  • Átnevezzük a forráslap neve alapján. Példa: Sheet1 => Sheet1 (2)
  • Ez megegyezik a másolt lapgal.
  • Ez lesz az aktív lap. Ha a lapot egy új munkafüzetre másolják, akkor ez az aktív munkafüzet lesz.

Példák a felhasználásra

Másolja a "Sheet1" lapot a "Sheet3" után

 Munkalapok ("Sheet1") Másolás után: = Munkalapok ("Sheet3") 

Másolja a "Sheet4" lapot a "Sheet2" előtt:

 Lapok ("Sheet4") Másolás előtt: = Lapok ("Sheet2") 

Másolja a "recap" lapot egy új munkafüzetbe

 Munkalapok ( "bedugni"). Copy 

Másolja az 1-re indexelt lapot a munkafüzet utolsó pozíciójában, függetlenül az utolsó lap nevétől:

 Lapok (1) .Másolás után: = Lapok (lapok). 

Másolja az indexelt 10-es lapot a munkafüzet elején, függetlenül az utolsó lap nevétől:

 Lapok (10) .Kattintson a következőre: = Lapok (1) 

Az aktív munkafüzet több lapjának egy új munkafüzetbe szeretne másolni:

 Lapok (Array ("Sheet1", "Sheet3", "Sheet5")) 

A módszer hozzáadása

Új táblázatot hoz létre (grafika vagy makró). Az új munkalap az aktív lap lesz.

Ez az új lap nem tartalmaz adatokat vagy formázást.

Szintaxis

kifejezés .Add ( előtte, utána, gróf, típus )

Az expresszió lehet egy lap vagy munkalap objektum.

Az előtti, utáni, gróf és típus paraméterek opcionálisak.

Vagy és előtte - Csak egy ilyen paramétert adhat meg. Ezek a változat típusai, és a lapot a másolás előtt vagy után is megjeleníthetik.

A gráf paraméter szintén egy változat. Ez a hozzáadni kívánt lapok számát jelenti.

A Típus paraméter adja meg a hozzáadni kívánt lap típusát.

  • xlWorkSheet - hozzáad egy munkalapot
  • xlChart - egy diagramlap hozzáadása
  • xlExcel4MacroSheet - makró lapot ad hozzá (Excel4)
  • xlExcel4IntlMacroSheet - egy makró lapot hirdet
  • xlDialogSheet - párbeszédpanelt ad.

Megjegyzés: Ne felejtse el átnevezni a paramétereket, vagy a szintaxis visszaadja az alábbi hibát:

 ActiveWorkbook.Sheets.Add Before: = Munkalapok (Worksheets.Count),, 1, xlChart 

Példák a felhasználásra

Tegyen egy lapot a munkafüzet utolsó lapja után:

 Lapok.Küldés után: = Munkalapok (munkalapok. Számla) 

Három lapot ad az aktív munkafüzet első pozíciójához:

 ActiveWorkbook.Sheets.Add Before: = Munkalapok (1), Count: = 3 

A "Sheet4" elnevezésű lap után egy "Wbk18" (Open!) Nevű munkafüzetet ad hozzá.

 Munkafüzetek ("Wbk18"). Lapok.Add után: = munkalapok ("lap4"), típus: = xlChart 

A lap tesztelése

Ellenőrizze, hogy a lap már létezik-e a munkafüzetben

 „Tesztelje ki az existe déjà funkciót Feuil_Exist (strWbk mint String, StrWsh mint String) Mivel a Boolean„ Gestionnaire d'erreur On Error Resume Next ”(teszt) Feuil_Exist = (Workbooks (strWbk) .Sheets (strWsh) .Name = strWsh) Végfunkció 

Ellenőrizze, hogy a fájlnév tiltott karaktereket tartalmaz-e

 „Tesztválogatói és kaktuszgyakorlatok ellenőrzése (strName as String, strChr mint karakterlánc) Boolean Dim i byte, Tb_Car () Stringként strProhib mint StrProhib =" /: *? "" | " "Liste des caractères à éviter Tb_Car = Split (StrConv (strProhib, vbUnicode), Chr $ (0))" Boucle sur tous caractères à éviter "Nota: le -1 est dû au chain para séparateur Chr (0 ) 'En effet, la chaine se terminant par Chr (0) il convient d'exclure ce dernier caractère Az i = LBound (Tb_Car) számára UBound (Tb_Car) - 1' Tesztelje meg a chaîne contient un caractère-t, ha InStr (strName, Tb_Car (i))> 0 Majd 'Si oui: Vissza Hamis Valid_Name = Hamis' ET Retourne le caractère tilé strChr = Tb_Car (i) Kilépés a funkció végéről Ha a következő i 'Si OK: Vissza True Valid_Name = True End függvény 

A hitelesítési funkció hívása

A kód mind a másolás, mind a hozzáadás módban azonos.
 Sub Principale () Dim strNewName mint String, strCara Stringként strNewName = "NewSheet" Ha Valid_Name (strNewName, strCara) = False Ezután MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Kilépés Sub End Ha Ha Feuil_Exist (ThisWorkbook.Name, strNewName) = True Ezután MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End Ha ezWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1") Másolás után: = Lapok (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Néhány hasznos tipp az Office 2013 programhoz

Az Office 2013 két kiegészítő módszert kínál az előbbiekhez:
  • Másoljon egy cellatartományt egy lapra és több lapra
  • Az Add2 módszer a Charts objektumok gyűjteményéhez.

Másolja a cellatartományt a FillAcrossSheets módszerrel

Ez a módszer csak az Office 2013 programhoz érhető el. A cellákat a "Sheet1" és a "Sheet3", a "Sheet5" és a "Sheet7" lapok között szeretné másolni.

 Lapok = Array ("Sheet3", "Sheet5", "Sheet7") Lapok (lapok) .Alaplapok munkalapok ("Sheet1") .tartomány ("A1: C5") 

A módszer paraméterei a következők:

  • Tartomány: Szükséges
  • Típus: Opcionális
  • xlFillWithAll: A tartalmak és formátumok másolása.
  • xlFillWithContents: A tartalom másolása.
  • xlFillWithFormats: Másolási formátumok.

Az Add2 módszer

Ez a módszer csak az Office 2013-ra érhető el. Ez a módszer a Charts objektumok gyűjteményeire vonatkozik, és a " Futásidejű " hibaüzenetet adja vissza a lapok és munkalapok objektumok esetén. Nincs több információ a Microsoft.com-on, kivéve a szintaxist:

kifejezés .Add ( előtte, utána, gróf, újLayout )

Az Expression egy munkalap objektumot jelent

A paraméterek megegyeznek az Add módszerrel, egyszerűen cseréljük ki a Type paramétert NewLayout értékkel. Ha a NewLayout érték True értékre van állítva, akkor az új szabályok használatával beilleszti a grafikát.

Előző Cikk Következő Cikk

Top Tippek