VBA - Adăugarea unei foi la un registru de lucru

VBA - Adăugarea unei foi la un registru de lucru

Introducere

În funcție de rezultatul dorit, puteți utiliza fie:
  • Metoda copiere => Pentru o copie a unei foi existente
  • Adăugați metoda => Pentru a adăuga o foaie nouă în agenda dvs.

De asemenea, trebuie să vă asigurați că numele foii noi este conform. Cu alte cuvinte, numele foii nu ar trebui să fie identic cu cel existent sau să conțină caractere interzise. În ambele cazuri, metodele de verificare ar trebui să fie aceleași.

Metoda de copiere

Copiați o foaie. Datele și formatul foii noi vor fi identice cu foaia sursă.

Sintaxă

expresie. Copie ( Înainte, După )

Expresia poate fi fie un obiect Sheet sau foaie de lucru.

Parametrii Înainte și După sunt opțional. Puteți specifica unul dintre acești doi parametri. Acestea sunt de tip Variant și pot fie să reprezinte foaia localizată înainte sau după cea pe care doriți să o copiați. Dacă parametrul este omis, foaia este copiată automat într-un registru de lucru nou.

Ce se întâmplă atunci?

Când creați o foaie nouă cu metoda Copiere:
  • Foaia este creată în locația dorită (înainte sau după o altă foaie din registrul de lucru)
  • Este redenumită pe baza numelui foii sursă. Exemplu: Sheet1 => Sheet1 (2)
  • Este identic cu foaia copiată.
  • Ea devine foaia activă. Dacă foaia este copiată într-un registru de lucru nou, acesta devine registrul de lucru activ.

Exemple de utilizare

Copiați "Sheet1" după "Sheet3"

 Foaie de lucru ("Sheet1"). Copia după: = Foile de lucru ("Sheet3") 

Copiați "Sheet4" înainte de "Sheet2":

 Foi ("Sheet4") Copiați înainte: = Sheets ("Sheet2") 

Copiați foaia de recapitulare într-un registru de lucru nou

 Foi de lucru ( „recapitulare“). Copiere 

Copiați foaia indexată ca 1 la ultima poziție din registrul de lucru, indiferent de numele ultimei foi:

 Foi (1) .Copi după: = Sheets (Sheets.Count) 

Copiați foaia indexată ca 10 la începutul foii de lucru, indiferent de numele ultimei foi:

 Foi (10). Copiați înainte: = Foi (1) 

Doriți să copiați mai multe coli din registrul de lucru activ într-un registru de lucru nou:

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

Metoda de adăugare

Creează o foaie de calcul nouă (grafică sau macro). Noua foaie de lucru devine foaia activă.

Această foaie nouă nu conține date sau formatări.

Sintaxă

expresie. Adăugați ( Înainte, După, Count, Tip )

Expresia poate fi fie un obiect Sheet sau foaie de lucru.

Parametrii Înainte, După, Contor și tip sunt opțional.

Fie și înainte - puteți specifica doar unul dintre acești parametri. Acestea sunt de tip Variant și pot fie să reprezinte foaia localizată înainte sau după cea pe care doriți să o copiați.

Parametrul Count este, de asemenea, un varianta. Acesta reprezintă numărul de coli pe care doriți să le adăugați.

Parametrul Type reprezintă tipul de coală pe care doriți să-l adăugați.

  • xlWorkSheet - adaugă o foaie de lucru
  • xlChart - adaugă o foaie de diagramă
  • xlExcel4MacroSheet - adaugă o foaie macro (Excel4)
  • xlExcel4IntlMacroSheet - adăugați o foaie macro
  • xlDialogSheet - adaugă o foaie de dialog.

NB: Nu uitați să vă redenumiți parametrii sau sintaxa va returna eroarea de mai jos:

 ActiveWorkbook.Sheets.Add Înainte de: = Foile de lucru (Worksheets.Count),, 1, xlChart 

Exemple de utilizare

Puneți o foaie după ultima foaie din registrul de lucru:

 Sheets.Add After: = foi de lucru (worksheets.Count) 

Adaugă trei foi la "prima poziție" a unui registru de lucru activ:

 ActiveWorkbook.Sheets.Add înainte: = Foile de lucru (1), Count: = 3 

Adaugă o foaie de diagramă într-un registru de lucru numit "Wbk18" (Open!) După foaia numită "Sheet4"

 Tabele de lucru ("Wbk18"). Sheets.Add După: = foi de lucru ("Sheet4"), Type: = xlChart 

Testarea colii

Verificați dacă foaia există deja în registrul de lucru

 'Test și la feuille existe déjà Funcție Feuil_Exist (strWbk As String, strWsh As String) Ca și Boolean' Gestionnaire d'erreur la eroare Reluați Următorul '"Test" Feuil_Exist = (Workbooks (strWbk) .Steets (strWsh) .Name = strWsh) Terminați funcția 

Verificați dacă numele fișierului conține caractere interzise

 'Test and la chaine contient un caractrere éviter Funcție Valid_Name (strName As String, strChr As String) Ca Boolean Dim i ca octet, Tb_Car () ca String, strProhib ca String strProhib = "/ \: *?" "|" 'Liste des caractères à éviter Tb_Car = Split (StrConv (strProhib, vbUnicode), Chr $ (0))' Boucle sur tous les caractères à éviter 'Note: le -1 est de la Split de la chaine par le séparateur Chr (0 ) 'En efet, la chaine se termină par un Chr (0) il convient d'exclure ce dernier caractère Pentru i = LBound (Tb_Car) Pentru UBound (Tb_Car) - 1' Test și la chaine contient un caractère prohibé Dacă InStr (strName, Tb_Car (i))> 0 Apoi 'Si oui: Returnează False Valid_Name = False' ET Retourne le caractère prohibite strChr = Tb_Car (i) 

Apelarea funcției de verificare

Codul este același pentru metoda Copiere sau Adăugare.
 Sub Principale () Dim strNewName Ca String, strCara Ca String strNewName = "NewSheet" Dacă Valid_Name (strNewName, strCara) = False Apoi MsgBox "Le nom:" & strNewName & "est invalid". & vbCrLf & _ "Un nume de feuille ne pas pas contenir le caractere:" & strCara, vbCritical Exit Sub End Daca Daca Feuil_Exist (ThisWorkbook.Name, strNewName) = True Atunci MsgBox "Le nom:" & strNewName & "est invalid. " & vbCrLf & _ "Ce nume de feuille est déjà utilisée dans ce classeur.", vbCritical Exit Sub End Dacă ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1") Copia după: = Sheets (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Unele sfaturi utile pentru Office 2013

Biroul 2013 aduce două metode complementare celor întâlnite anterior:
  • Copiați o gamă de celule într-o foaie și în mai multe coli
  • Metoda Add2 pentru colectarea obiectelor Grafice.

Copiați o gamă de celule utilizând metoda FillAcrossSheets

Această metodă este disponibilă numai pentru Office 2013. Doriți să copiați o gamă de celule din "Sheet1" la "Sheet3", "Sheet5" și "Sheet7".

 Foaie (Sheet3, Sheet5, Sheet7) Sheets (Sheets) .FillAcrossSheets Foile de lucru ("Sheet1"). 

Parametrii acestei metode sunt:

  • Domeniu: Necesar
  • Tip: Opțional
  • xlFillWithAll: Copiați conținutul și formatele.
  • xlFillWithContents: Copiați conținutul.
  • xlFillWithFormats: Copiați formate.

Metoda Add2

Această metodă este disponibilă numai pentru Office 2013. Această metodă se aplică colecțiilor obiectelor din Charts și returnează o eroare " Runtime " atunci când este utilizată cu obiecte Sheets și WorkSheets. Nu mai există informații despre Microsoft.com cu excepția sintaxei:

expresie .Adăugați ( Înainte, După, Count, NewLayout )

Expresia reprezintă un obiect din foaia de lucru

Parametrii sunt identici cu metoda Add, pur și simplu înlocuiți parametrul Type cu NewLayout. Dacă NewLayout este setat la True, graficul este introdus folosind noile reguli.

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi