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ánMunkalapok ("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.