VBA - lehe lisamine töövihikusse

VBA - lehe lisamine töövihikusse

Sissejuhatus

Sõltuvalt tulemusest, mida soovite saavutada, võite kasutada:
  • Kopeerimismeetod => Olemasoleva lehe koopia jaoks
  • Lisa meetod => Uue tühja lehe lisamiseks oma töövihikule.

Samuti peate veenduma, et uue lehe nimi on vastavuses. See tähendab, et lehe nimi ei peaks olema identne olemasoleva nimega või sisaldama keelatud märke. Mõlemal juhul peaksid kontrollimeetodid olema samad.

Kopeerimise meetod

Kopeerige leht. Uue lehe andmed ja vorming on lähtetekstiga identsed.

Süntaksi

väljend .Koopia ( enne, pärast )

Väljendamine võib olla kas lehe või töölehe objekt.

Parameetrid Enne ja pärast on valikulised. Saate määrata ainult ühe neist kahest parameetrist. Need on varianditüübiga ja võivad kas kujutada lehte enne või pärast seda, mida soovite kopeerida. Kui parameeter jäetakse välja, kopeeritakse leht automaatselt uude töövihikusse.

Mis siis juhtub?

Uue lehe loomisel kopeerimismeetodiga:
  • Leht luuakse soovitud kohas (enne või pärast töölehe teist lehte)
  • See nimetatakse ümber lähtekoodi nime alusel. Näide: Sheet1 => Sheet1 (2)
  • See on identne kopeeritud lehega.
  • See muutub aktiivseks leheks. Kui leht kopeeritakse uude töövihikusse, muutub see aktiivseks töövihikuks.

Näited kasutamise kohta

Kopeerige "Sheet1" pärast "Sheet3"

 Töölehed ("Sheet1") Kopeeri pärast: = töölehed ("Sheet3") 

Kopeerige "Sheet4" enne "Sheet2":

 Lehed ("Sheet4"). Kopeeri enne: = lehed ("Sheet2") 

Kopeerige lehel "recap" uude töövihikusse

 Töölehed ("recap") 

Kopeerige töölehe viimases asendis 1-ga indekseeritud leht, sõltumata viimase lehe nimest:

 Lehed (1) .Koopia pärast: = lehed (lehed.Kontroll) 

Kopeerige töölehe alguses 10-ga indekseeritud leht, sõltumata viimase lehe nimest:

 Lehed (10) .Koopia enne: = lehed (1) 

Sa tahad kopeerida mitu aktiivse töövihiku lehte uude töövihikusse:

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

Lisa meetod

Loob uue arvutustabeli (graafika või makro). Uus tööleht saab aktiivseks leheks.

See uus leht ei sisalda andmeid ega vormingut.

Süntaksi

avaldis .Lisa ( enne, pärast, krahv, tüüp )

Väljendamine võib olla kas lehe või töölehe objekt.

Enne, pärast, loendust ja tüübi parameetreid on valikuline.

Kas ja enne - saate määrata ainult ühe neist parameetritest. Need on varianditüübiga ja võivad kas kujutada lehte enne või pärast seda, mida soovite kopeerida.

Parameeter Count on ka variant. See näitab lehtede arvu, mida soovite lisada.

Parameeter Tüüp esindab lisatava lehe tüüpi.

  • xlWorkSheet - lisab töölehe
  • xlChart - lisab diagrammilehe
  • xlExcel4MacroSheet - lisab makro lehe (Excel4)
  • xlExcel4IntlMacroSheet - reklaamib makro lehte
  • xlDialogSheet - lisab dialoogi.

NB! Ära unusta parameetreid ümber nimetada või süntaks tagastab allpool oleva vea:

 ActiveWorkbook.Sheets.Add Enne: = töölehed (Worksheets.Count),, 1, xlChart 

Näited kasutamise kohta

Pange töölehe viimase lehe järel leht:

 Lehed.Lisa pärast: = töölehed (töölehed.Konto) 

Lisab aktiivse töövihiku "esimesele positsioonile" kolm lehte:

 ActiveWorkbook.Sheets.Add Enne: = Töölehed (1), Count: = 3 

Lisab lehele "Sheet4" lisatud töölehele nimega "Wbk18" (avatud!) Diagrammilehe

 Tööraamatud ("Wbk18"). Lehed.Lisa pärast: = töölehed ("Sheet4"), tüüp: = xlChart 

Lehe testimine

Kontrollige, kas tööleht on juba olemas

 „Testige oma funktsiooni Feuil_Exist (strWbk kui string, strWsh as stringina) kui Boole 'Gestionnaire d'erreur On Error Resume Next' 'Test' Feuil_Exist = (töövihikud (strWbk). Lehed (strWsh) .Name = strWsh) Lõppfunktsioon 

Kontrollige, kas failinimi sisaldab keelatud märke

 Funktsioon Valid_Name funktsiooni kontrollimine (strName kui string, strChr nagu string) Boolean Dim i kui bait, Tb_Car () Stringina strProhib kui 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 Chr (0) il convient d'exclure ce dernier caractère jaoks i = LBound (Tb_Car) UBoundi (Tb_Car) jaoks - 1 'Testi ja sisenemise keelamine Kui InStr (strName, Tb_Car (i))> 0 Siis "Si oui: Return False Valid_Name = False" ET Retourne le caractère aizlieg strChr = Tb_Car (i) Välju funktsiooni lõpp Kui järgmine i 'Si OK: Tagasi True Valid_Name = True End funktsioon 

Kinnitusfunktsiooni helistamine

Kood on sama nii kopeerimise kui ka lisamismeetodi puhul.
 Sub Principale () Dim strNewName kui string, strCara Nagu String strNewName = "New Sheet" Kui Valid_Name (strNewName, strCara) = False Seejärel MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Exit Sub End Kui Feuil_Exist (ThisWorkbook.Name, strNewName) = True Seejärel MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End Kui seeWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Kopeeri pärast: = lehed (lehed.Count) ActiveSheet.Name = strNewName End Sub 

Office 2013 jaoks on mõned kasulikud nõuanded

Office 2013 toob endaga kaasa kaks täiendavat meetodit:
  • Kopeerige vahemik lahtrile ja mitmele lehele
  • Diagrammi objektide kogude lisamismeetod.

Kopeerige lahtri vahemik FillAcrossSheets meetodil

See meetod on saadaval ainult Office 2013 jaoks. Soovite kopeerida lahtrite vahemikku "Sheet1" kuni "Sheet3", "Sheet5" ja "Sheet7".

 Lehed = Array ("Sheet3", "Sheet5", "Sheet7") Lehed (lehed) .Arveltabelite töölehed ("Sheet1"). Vahemik ("A1: C5") 

Selle meetodi parameetrid on järgmised:

  • Vahemik: Nõutav
  • Tüüp: valikuline
  • xlFillWithAll: sisu ja vormingute kopeerimine.
  • xlFillWithContents: sisu kopeerimine.
  • xlFillWithFormats: vormide kopeerimine.

Lisa2 meetod

See meetod on saadaval ainult Office 2013 jaoks. See meetod kehtib Charts-objektide kogumite kohta ja tagastab " Runtime " -vea, kui seda kasutatakse koos lehtede ja töölehtede objektidega. Microsoft.com-is pole rohkem infot peale süntaksi:

avaldamine .Lisa ( enne, pärast, loend, uusLayout )

Väljend väljendab töölehe objekti

Parameetrid on identsed lisamismeetodiga, lihtsalt asendage tüübi parameeter NewLayoutiga. Kui NewLayout on seatud väärtusele True, sisestatakse graafik uute reeglitega.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited