VBA - lapo pridėjimas prie darbo knygos

VBA - lapo pridėjimas prie darbo knygos

Įvadas

Priklausomai nuo norimo rezultato, galite naudoti:
  • Kopijavimo metodas => Esamo lapo kopija
  • Pridėti metodą => Norėdami į savo darbo knygą įtraukti naują tuščią lapą.

Taip pat turite įsitikinti, kad naujo lapo pavadinimas atitinka. Tai reiškia, kad lapo pavadinimas neturėtų būti tapatus egzistuojančiam arba turėti draudžiamų simbolių. Abiem atvejais patikros metodai turėtų būti tokie patys.

Kopijavimo metodas

Nukopijuokite lapą. Naujo lapo duomenys ir formatas bus identiški šaltinio lapui.

Sintaksė

išraiška .Kopijavimas ( prieš, po )

„Expression“ gali būti arba lapo arba darbalapio objektas.

Prieš ir po parametrai yra neprivalomi. Galite nurodyti tik vieną iš šių dviejų parametrų. Jie yra „Variant“ tipo ir gali atstovauti lapą surasti prieš arba po kopijavimo. Jei parametras yra praleistas, lapas automatiškai nukopijuojamas į naują darbo knygą.

Kas tada atsitiks?

Kuriant naują lapą naudodami Kopijavimo metodą:
  • Lapas sukuriamas pageidaujamoje vietoje (prieš arba po kito darbo knygos lapo)
  • Jis pervadinamas pagal šaltinio lapo pavadinimą. Pavyzdys: Sheet1 => Sheet1 (2)
  • Jis yra identiškas kopijuotam lapui.
  • Jis tampa aktyviuoju lapu. Jei lapas nukopijuojamas į naują darbo knygą, tai tampa aktyvia darbo knyga.

Naudojimo pavyzdžiai

Kopijuoti „Sheet1“ po „Sheet3“

 Darbo lapai („Sheet1“) Kopijavimas po: = darbalapiai („Sheet3“) 

Nukopijuokite „Sheet4“ prieš „Sheet2“:

 Lapai („Sheet4“). Kopijavimas prieš: = lapai („Sheet2“) 

Nukopijuokite „recap“ lapą į naują darbo knygą

 Darbo lapai („recap“) 

Nukopijuokite indeksuotą 1 lapą paskutinėje darbo knygos pozicijoje, neatsižvelgiant į paskutinio lapo pavadinimą:

 Lapai (1) .Kopija po: = Lakštai (lapai.Skaičiuoti) 

Kopijuoti lapą, indeksuojamą kaip 10, darbo knygos pradžioje, neatsižvelgiant į paskutinio lapo pavadinimą:

 Lapai (10) .Kopijavimas prieš: = lapai (1) 

Norite kopijuoti kelis aktyvaus darbo knygos lapus į naują darbo knygą:

 Lapai („Array“ („Sheet1“, „Sheet3“, „Sheet5“)) 

Pridėti metodą

Sukuria naują skaičiuoklę (grafiką ar makrokomandą). Naujas darbalapis tampa aktyviuoju lapu.

Šiame naujame lape nėra duomenų ar formato.

Sintaksė

išraiška. Pridėti ( prieš, po, skaičiuoti, tipas )

„Expression“ gali būti arba lapo arba darbalapio objektas.

Prieš, po, skaičiavimo ir tipo parametrai yra neprivalomi.

Bet ir prieš - Galite nurodyti tik vieną iš šių parametrų. Jie yra „Variant“ tipo ir gali atstovauti lapą surasti prieš arba po kopijavimo.

Skaičių parametras taip pat yra variantas. Jis rodo lapų, kuriuos norite pridėti, skaičių.

Parametras Tipas rodo lapo tipą, kurį norite pridėti.

  • xlWorkSheet - prideda darbalapį
  • xlChart - prideda diagramos lapą
  • xlExcel4MacroSheet - prideda makro lapą (Excel4)
  • xlExcel4IntlMacroSheet - skelbia makro lapą
  • xlDialogSheet - prideda dialogo lapą.

NB: Nepamirškite pervardyti savo parametrų arba sintaksė grąžins žemiau esančią klaidą:

 ActiveWorkbook.Sheets.Add Prieš: = darbalapiai (Worksheets.Count),, 1, xlChart 

Naudojimo pavyzdžiai

Įdėkite lapą po paskutinio darbo knygos lapo:

 Lakštai.Pridėkite po: = darbalapiai (darbalapiai.Skaičiuoti) 

Įtraukia tris lapus aktyviosios darbo knygos „pirmojoje vietoje“:

 ActiveWorkbook.Sheets.Add Prieš: = darbalapius (1), Count: = 3 

Po lapo, pavadinto „Sheet4“, darbo knygoje „Wbk18“ (Atidaryti!) Pridedamas diagramos lapas.

 Darbo knygos („Wbk18“) .Lentelės.Pridėkite po: = darbalapiai („Sheet4“), tipas: = xlChart 

Bandymo bandymas

Patikrinkite, ar lape jau yra darbo knygoje

 „Tikrinti savo funkciją„ Feuil_Exist “(strWbk kaip eilutė, strWsh kaip eilutė) Kaip Būlio„ Gestionnaire d'erreur On Error Resume Next “„ Test “Feuil_Exist = (Darbaknygės (strWbk). Lapai (strWsh) .Name = strWsh) Pabaigos funkcija 

Patikrinkite, ar failo pavadinime yra draudžiamų simbolių

 „Tikrinimas ir kontrolė„ Funkcija Valid_Name “(strName kaip String, StrChr kaip String) Kaip Boolean Dim i Byte, Tb_Car () Kaip String, strProhib Kaip String strProhib =" /: *? "" | " „Liste des caractères à éviter Tb_Car = Splitas (StrConv (strProhib, vbUnicode), Chr $ (0))„ Boucle sur tous caractères à éviter “Nota:„ 1 “ ) „En effet, la chaine se terminant par un Chr (0) il convient d'exclure ce dernier caractère i = LBound (Tb_Car) į UBound (Tb_Car) - 1 'Tikrinti ir panaikinti draudimą., Tb_Car (i))> 0 Tada „Si oui: Return False Valid_Name = False“ ET Retourne le caractère aizliegimas strChr = Tb_Car (i) Išeiti iš funkcijų pabaigos Jei sekantis i 'Si OK: Grįžti True Valid_Name = True End funkcija 

Skambinimas tikrinimo funkcijai

Kodas yra tas pats ir kopijavimo, arba pridėjimo metodui.
 Sub Principale () Dim strNewName Kaip String, strCara Kaip String strNewName = "New Sheet" Jei Valid_Name (strNewName, strCara) = False Tada MsgBox "Le nom:" & strNewName & "est invalidide". & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Exit Sub End Jei Jei Feuil_Exist (ThisWorkbook.Name, strNewName) = True Tada MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End Jei taiWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Kopijavimas po: = Lakštai (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Kai kurie naudingi „Office 2013“ patarimai

„Office 2013“ pateikia du papildomus metodus, taikomus anksčiau matomiems:
  • Nukopijuokite ląstelių diapazoną į lapą ir kelis lapus
  • Diagramų objektų rinkinių Add2 metodas.

Nukopijuokite ląstelių diapazoną naudodami „FillAcrossSheets“ metodą

Šis metodas galimas tik „Office 2013“. Norite nukopijuoti ląstelių diapazoną iš „Sheet1“ į „Sheet3“, „Sheet5“ ir „Sheet7“.

 Lakštai = „Array“ („Sheet3“, „Sheet5“, „Sheet7“) Lakštai (lapai) .Atvirkštinių lapų darbalapiai („Sheet1“) „Range“ („A1: C5“) 

Šio metodo parametrai yra:

  • Diapazonas: Reikalingas
  • Tipas: pasirinktinai
  • xlFillWithAll: nukopijuokite turinį ir formatus.
  • xlFillWithContents: nukopijuokite turinį.
  • xlFillWithFormats: kopijuokite formatus.

Add2 metodas

Šis metodas galimas tik „Office 2013“. Šis metodas taikomas „Charts“ objektų kolekcijoms ir grąžina „ Runtime “ klaidą, kai naudojamas su „Sheets“ ir „WorkSheets“ objektais. Daugiau informacijos „Microsoft.com“ nėra, išskyrus sintaksę:

išraiška. Pridėkite ( prieš, po, skaičiuoklė, naujiena )

„Expression“ reiškia darbalapio objektą

Parametrai yra identiški „Add“ metodui, tiesiog pakeiskite „Type“ parametrą „NewLayout“. Jei „NewLayout“ nustatoma tiesa „True“, grafikas įterpiamas naudojant naujas taisykles.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai