VBA - arkin lisääminen työkirjaan
VBA - arkin lisääminen työkirjaan
esittely
Riippuen tuloksesta, jonka haluat saavuttaa, voit käyttää seuraavaa:- Kopiointimenetelmä => Kopio olemassa olevasta arkista
- Lisää menetelmä => Lisää uusi tyhjä arkki työkirjaasi.
Varmista myös, että uuden arkin nimi on yhteensopiva. Toisin sanoen arkin nimen ei pitäisi olla identtinen olemassa olevan kanssa tai sisältää kiellettyjä merkkejä. Molemmissa tapauksissa tarkastusmenetelmien tulisi olla samat.
Kopiointimenetelmä
Kopioi arkki. Uuden arkin tiedot ja muoto ovat identtiset lähdelomakkeen kanssa.Syntaksi
ilmaus .Kopio ( ennen, jälkeen )Ilmaus voi olla joko arkki- tai työarkki-objekti.
Ennen ja jälkeen -parametrit ovat valinnaisia. Voit määrittää vain yhden näistä kahdesta parametrista. Ne ovat versiotyyppiä, ja ne voivat edustaa arkkia paikan päällä ennen tai jälkeen kopioitavan. Jos parametri jätetään pois, arkki kopioidaan automaattisesti uuteen työkirjaan.
Mitä sitten tapahtuu?
Kun luot uuden arkin kopiointimenetelmällä:- Arkki luodaan haluttuun paikkaan (ennen tai jälkeen toisen työkirjan sivun)
- Se nimetään uudelleen lähtölomakkeen nimen perusteella. Esimerkki: Sheet1 => Sheet1 (2)
- Se on identtinen kopioidun arkin kanssa.
- Siitä tulee aktiivinen arkki. Jos arkki kopioidaan uuteen työkirjaan, siitä tulee aktiivinen työkirja.
Esimerkkejä käytöstä
Kopioi "Sheet1" "Sheet3": n jälkeenTyöarkit ("Sheet1") Kopioi jälkeen: = Työarkit ("Sheet3")
Kopioi "Sheet4" ennen "Sheet2":
Levyt ("Sheet4") Kopioi ennen: = Levyt ("Sheet2")
Kopioi "recap" -lehti uuteen työkirjaan
Laskentataulukot ( "kertaus"). Kopioi
Kopioi taulukko, joka on indeksoitu 1: ksi työkirjan viimeiseen kohtaan, riippumatta viimeisimmän arkin nimestä:
Levyt (1) .Kopio jälkeen: = arkit (arkit.Laskenta)
Kopioi arkki, joka on indeksoitu 10: ksi työkirjan alussa, riippumatta viimeisimmän levyn nimestä:
Levyt (10). Kopioi ennen: = Levyt (1)
Haluat kopioida useita aktiivisen työkirjan sivuja uuteen työkirjaan:
Levyt (Array ("Sheet1", "Sheet3", "Sheet5"))
Lisää menetelmä
Luo uuden laskentataulukon (grafiikka tai makro). Uusi laskentataulukko tulee aktiiviseksi arkiksi.Tämä uusi arkki ei sisällä mitään tietoja tai muotoiluja.
Syntaksi
ilmaus .Add ( ennen, jälkeen, laskea, tyyppi )Ilmaus voi olla joko arkki- tai työarkki-objekti.
Ennen, jälkeen, laskenta ja tyypin parametrit ovat valinnaisia.
Joko ja ennen - Voit määrittää vain yhden näistä parametreista. Ne ovat versiotyyppiä, ja ne voivat edustaa arkkia paikan päällä ennen tai jälkeen kopioitavan.
Count-parametri on myös Variantti. Se edustaa lisättävien arkkien määrää.
Tyyppi-parametri edustaa lisättävän arkin tyyppiä.
- xlWorkSheet - lisää laskentataulukon
- xlChart - lisää kaavion
- xlExcel4MacroSheet - lisää makron (Excel4)
- xlExcel4IntlMacroSheet - mainokset makro-arkille
- xlDialogSheet - lisää valintaikkunan.
Huomaa: Älä unohda nimetä parametreja uudelleen tai syntaksi palauttaa alla olevan virheen:
ActiveWorkbook.Sheets.Add Ennen: = Työarkit (Worksheets.Count),, 1, xlChart
Esimerkkejä käytöstä
Laita arkki työkirjan viimeisen arkin jälkeen:Levyt.Lisää jälkeen: = Työarkit (laskentataulukot)
Lisää kolme arkkia aktiivisen työkirjan "ensimmäiseen paikkaan":
ActiveWorkbook.Sheets.Add Ennen: = Työarkit (1), Count: = 3
Lisää taulukon "Wbk18" (Open!) Työkirjaan "Sheet4" -sivun jälkeen
Työkirjat ("Wbk18") .Lehdet.Lisää jälkeen: = Työarkit ("Sheet4"), Tyyppi: = xlChart
Levyn testaus
Tarkista, onko työkirjaa jo olemassa
'Testauspaikkakunnan toiminta (strWbk as String, strWsh As String) Koska Boolen' Gestionnaire d'erreur On Error Resume Next '"Test" Feuil_Exist = (Työkirjat (strWbk) .Sheets (strWsh) .Name = strWsh) Lopeta toiminto
Tarkista, sisältääkö tiedostonimi kiellettyjä merkkejä
Toimintotunnisteiden testaus ja tarkistus Funktio Valid_Name (strName kuten merkkijono, strChr kuten merkkijono) Boolean Dim i: n tavana, Tb_Car () merkkijonoina strProhib kuten merkkijono 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 Split de la chaine par le sārarateur Chr (0 ) 'En effet, la chaine se terminant par Chr (0) il convient d'exclure ce dernier caractère i = LBound (Tb_Car) Uboundiin (Tb_Car) - 1' Testaus kieltäytyy kiellosta ja kiellosta Jos InStr (strName, Tb_Car (i))> 0 Sitten 'Si oui: Return False Valid_Name = False' ET Retourne le caractère kielto strChr = Tb_Car (i) Poistu toiminnon loppuun Jos seuraava i 'Si OK: Palauta True Valid_Name = True End -toiminto
Vahvistustoiminnon kutsuminen
Koodi on sama sekä kopiointi- että lisämenetelmässä.Sub Principale () Dim strNewName merkkijonoina, strCara Kuten String strNewName = "NewSheet" Jos Valid_Name (strNewName, strCara) = False Sitten MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Exit Sub End Jos If Feuil_Exist (ThisWorkbook.Name, strNewName) = True Sitten MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End Jos tämäWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Kopioi jälkeen: = Sheets (Sheets.Count) ActiveSheet.Name = strNewName End Sub
Joitakin hyödyllisiä vinkkejä Office 2013: lle
Office 2013 tuo kaksi toisiaan täydentävää menetelmää aiemmin nähtyihin:- Kopioi solualue arkille ja useille arkkeille
- Lisää2-menetelmä Charts-objektien kokoelmille.
Kopioi solualue FillAcrossSheets-menetelmällä
Tämä menetelmä on käytettävissä vain Office 2013: ssa. Haluat kopioida solualueen "Sheet1" - "Sheet3" -, "Sheet5" - ja "Sheet7" -lehdistä.Levyt = Array ("Sheet3", "Sheet5", "Sheet7") Levyt (arkit) .Täydennyslehtien työarkit ("Sheet1") Alue ("A1: C5")
Tämän menetelmän parametrit ovat:
- Alue: Pakollinen
- Tyyppi: Valinnainen
- xlFillWithAll: Kopioi sisältö ja muodot.
- xlFillWithContents: Kopioi sisältö.
- xlFillWithFormats: Kopioi tiedostomuodot.
Add2-menetelmä
Tämä menetelmä on käytettävissä vain Office 2013: ssa. Tätä menetelmää sovelletaan Charts-objektien kokoelmiin ja palauttaa Runtime- virheen, kun sitä käytetään Sheets and WorkSheets -objektien kanssa. Microsoft.comissa ei ole lisätietoja syntaksi lukuun ottamatta:ilmaus .Add ( ennen, jälkeen, laskea, uusiLayout )
Expression edustaa työkirjan kohdetta
Parametrit ovat samat kuin Add-menetelmässä. Vaihda Type-tyypin parametri NewLayoutiin. Jos NewLayout on asetettu True-arvoon, grafiikka lisätään uusien sääntöjen avulla.