VBA - lapas pievienošana darbgrāmatai
VBA - lapas pievienošana darbgrāmatai

Ievads
Atkarībā no vēlamā rezultāta jūs varat izmantot:- Kopēšanas metode => Par esošas lapas kopiju
- Pievienot metodi => Lai darbgrāmatai pievienotu jaunu tukšu lapu.
Jums ir arī jāpārliecinās, ka jaunās lapas nosaukums ir saderīgs. Tas nozīmē, ka lapas nosaukumam nevajadzētu būt identiskam esošam vai saturēt aizliegtas rakstzīmes. Abos gadījumos pārbaudes metodēm jābūt vienādām.
Kopēšanas metode
Kopējiet lapu. Jaunās lapas dati un formāts būs identiski avota lapai.Sintakse
izteiksme. Kopēšana ( pirms, pēc )Izteiksme var būt vai nu lapas vai darblapas objekts.
Pirms un pēc parametri ir obligāti. Varat norādīt tikai vienu no šiem diviem parametriem. Tie ir varianta tipa un var attēlot lapu, kas atrodas pirms vai pēc kopēšanas. Ja parametrs ir izlaists, lapa tiek automātiski kopēta jaunā darbgrāmatā.
Kas tad notiek?
Veidojot jaunu lapu ar kopēšanas metodi:- Lapa ir izveidota vēlamajā vietā (pirms vai pēc citas lapas darbgrāmatā)
- To pārdēvē, pamatojoties uz avota lapas nosaukumu. Piemērs: Sheet1 => Sheet1 (2)
- Tas ir identisks kopētai lapai.
- Tā kļūst par aktīvo lapu. Ja lapa tiek kopēta uz jaunu darbgrāmatu, tā kļūst par aktīvo darbgrāmatu.
Lietošanas piemēri
Kopējiet "Sheet1" pēc "Sheet3"Darblapas ("Sheet1") Kopēt pēc: = darblapas ("Sheet3")
Kopējiet "Sheet4" pirms "Sheet2":
Lapas ("Sheet4") Kopēt pirms: = lapas ("Sheet2")
Kopējiet "recap" lapu jaunā darbgrāmatā
Darblapas ("recap") Kopēt
Kopējiet lapas, kas indeksētas kā 1, darbgrāmatas pēdējā pozīcijā neatkarīgi no pēdējās lapas nosaukuma:
Lapas (1) .Kopējiet pēc: = lapas (lapas).
Kopējiet lapas, kas indeksētas kā 10 darbgrāmatas sākumā, neatkarīgi no pēdējās lapas nosaukuma:
Lapas (10) .Kopējiet pirms: = Loksnes (1)
Jūs vēlaties kopēt vairākas aktīvās darbgrāmatas lapas jaunā darbgrāmatā:
Lapas (Array ("Sheet1", "Sheet3", "Sheet5"))
Pievienot metodi
Izveido jaunu izklājlapu (grafikas vai makro). Jaunā darblapa kļūst par aktīvo lapu.Šī jaunā lapa nesatur datus vai formatējumu.
Sintakse
izteiksme .Pievienot ( pirms, pēc, skaits, veids )Izteiksme var būt vai nu lapas vai darblapas objekts.
Pirms, pēc, skaitīšanas un tipa parametri ir obligāti.
Vai nu pirms un pirms - varat norādīt tikai vienu no šiem parametriem. Tie ir varianta tipa un var attēlot lapu, kas atrodas pirms vai pēc kopēšanas.
Skaitļa parametrs ir arī variants. Tas attēlo lapu skaitu, ko vēlaties pievienot.
Parametra tips ir tā veida loksne, kuru vēlaties pievienot.
- xlWorkSheet - pievieno darblapu
- xlChart - pievieno diagrammas lapu
- xlExcel4MacroSheet - pievieno makro lapu (Excel4)
- xlExcel4IntlMacroSheet - reklamē makro lapu
- xlDialogSheet - pievieno dialoglodziņu.
NB! Neaizmirstiet pārdēvēt savus parametrus vai sintakse atgriezīs zemāk minēto kļūdu:
ActiveWorkbook.Sheets.Add Pirms: = darblapas (Worksheets.Count),, 1, xlChart
Lietošanas piemēri
Pēc pēdējā darbgrāmatas lapas ievietojiet lapu:Lapas.Pievienot pēc: = darblapas (darblapas.Skaits)
Aktīvās darbgrāmatas "pirmajā pozīcijā" pievieno trīs lapas:
ActiveWorkbook.Sheets.Add Pirms: = darblapas (1), skaits: = 3
Pēc lapas ar nosaukumu "Sheet4" pievieno diagrammas lapu darbgrāmatā ar nosaukumu "Wbk18" (Open!)
Darbgrāmatas ("Wbk18"). Loksnes.Pievienot pēc: = darblapas ("Sheet4"), tips: = xlChart
Lapas pārbaude
Pārbaudiet, vai darbgrāmatā jau ir lapa
'Testu la feuille existe déjà Funkcija Feuil_Exist (strWbk kā virkne, strWsh kā virkne) Kā Būla "Gestionnaire d'erreur On Error Resume Next" "Test" Feuil_Exist = (Darbgrāmatas (strWbk). Lapas (strWsh) .Name = strWsh) Beigu funkcija
Pārbaudiet, vai faila nosaukumā ir aizliegtas rakstzīmes
Funkcija Valid_Name (strName As String, StrChr kā String) Kā Boolean Dim i kā baits, Tb_Car () String, strProhib Kā String strProhib = "/: *?" "|" “Liste des caractères à éviter Tb_Car = Split (StrConv (strProhib, vbUnicode), Chr $ (0))“ Boucle sur tous caractères à éviter ”(0) ) “En effet, la chaine se terminant par un Chr (0) il convient d'exclure ce dernier caractère Par i = LBound (Tb_Car) uz UBound (Tb_Car) - 1 'Pārbaudiet, vai ir aizliegts veikt darbību, ja tas ir InStr (strName, Tb_Car (i))> 0 Tad "Si oui: Return False Valid_Name = False" ET Retourne le caractère aizliegums strChr = Tb_Car (i) Iziet no funkciju beigas Ja nākamais i 'Si OK: Atgriezties True Valid_Name = True End funkcija
Zvanīšana verifikācijas funkcijai
Kods ir vienāds gan kopēšanas, gan pievienošanas metodei.Sub Principale () Dim strNewName Kā String, strCara Kā String strNewName = "New Sheet" Ja Valid_Name (strNewName, strCara) = False Tad MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Iziet Sub End Ja Ja Feuil_Exist (ThisWorkbook.Name, strNewName) = True Tad MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End Ja tas irWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Kopēt pēc: = Lapas (Sheets.Count) ActiveSheet.Name = strNewName Beigas Sub
Daži noderīgi padomi Office 2013
Office 2013 nodrošina divas papildu metodes tiem, kas redzami iepriekš:- Kopējiet šūnu loku uz lapu un vairākām lapām
- Diagrammu objektu kolekciju Add2 metode.
Kopējiet šūnu diapazonu, izmantojot FillAcrossSheets metodi
Šī metode ir pieejama tikai Office 2013. Jūs vēlaties kopēt šūnu diapazonu no "Sheet1" uz "Sheet3", "Sheet5" un "Sheet7".Loksnes = Array ("Sheet3", "Sheet5", "Sheet7") Loksnes (Loksnes). Aizpildiet tabulu darblapas ("Sheet1"). Diapazons ("A1: C5")
Šīs metodes parametri ir šādi:
- Diapazons: nepieciešams
- Tips: pēc izvēles
- xlFillWithAll: kopējiet saturu un formātus.
- xlFillWithContents: kopējiet saturu.
- xlFillWithFormats: Kopēt formātus.
Metode Add2
Šī metode ir pieejama tikai Office 2013. Šī metode attiecas uz Charts objektu kolekcijām un atgriež " Runtime " kļūdu, ja to lieto kopā ar Sheets un WorkSheets objektiem. Nav vairāk informācijas vietnē Microsoft.com, izņemot sintaksi:izteiksme .Pievienot ( pirms, pēc, skaitīt, jauni )
Izteiksme ir darblapas objekts
Parametri ir identiski pievienošanas metodei, vienkārši nomainiet parametru Type ar NewLayout. Ja NewLayout ir iestatīts uz True, grafika tiek ievietota, izmantojot jaunos noteikumus.