VBA - Legge til et ark i en arbeidsbok

VBA - Legge til et ark i en arbeidsbok

Introduksjon

Avhengig av resultatet du vil oppnå, kan du enten bruke:
  • Kopier metode => For en kopi av et eksisterende ark
  • Legg til metode => For å legge til et nytt, blankt ark i arbeidsboken din.

Du må også sørge for at navnet på det nye arket er kompatibelt. Det vil si at navnet på arket ikke skal være identisk med en eksisterende eller inneholde noen forbudte tegn. I begge tilfeller bør verifikasjonsmetodene være de samme.

Kopier metode

Kopier et ark. Dataene og formatet til det nye arket vil være identisk med kildearket.

syntax

uttrykk. Kopi ( Før, Etter )

Uttrykk kan enten være et ark- eller regnearkobjekt.

Før og etter parametrene er valgfrie. Du kan bare angi en av disse to parametrene. De er av typen Variant og kan enten representere arket lokalisere før eller etter den du vil kopiere. Hvis parameteren utelates, kopieres arket automatisk til en ny arbeidsbok.

Hva skjer da?

Når du oppretter et nytt ark med kopimetoden:
  • Arket er opprettet på ønsket sted (før eller etter et annet ark i arbeidsboken)
  • Det omdøpes basert på navnet på kildearket. Eksempel: Sheet1 => Sheet1 (2)
  • Det er identisk med det kopierte arket.
  • Det blir det aktive arket. Hvis arket kopieres til en ny arbeidsbok, blir den den aktive arbeidsboken.

Eksempler på bruk

Kopier "Sheet1" etter "Sheet3"

 Worksheets ("Sheet1"). Kopier etter: = Regneark ("Sheet3") 

Kopier "Sheet4" før "Sheet2":

 Ark ("Sheet4"). Kopier før: = Ark ("Ark2") 

Kopier "resap" -arket i en ny arbeidsbok

 Regneark ( "oppsummering"). Copy 

Kopier arket som er indeksert som 1 på siste plass i arbeidsboken, uavhengig av navnet på det siste arket:

 Ark (1). Kopi Etter: = Ark (Ark.Count) 

Kopier arket indeksert som 10 i begynnelsen av arbeidsboken, uavhengig av navnet på det siste arket:

 Ark (10) .Kopi Før: = Ark (1) 

Du vil kopiere flere ark i den aktive arbeidsboken til en ny arbeidsbok:

 Ark (Array ("Sheet1", "Sheet3", "Sheet5")). Kopier 

Legg til metoden

Oppretter et nytt regneark (grafikk eller makro). Det nye regnearket blir det aktive arket.

Dette nye arket inneholder ingen data eller formatering.

syntax

uttrykk. Legg til ( Før, Etter, Antall, Type )

Uttrykk kan enten være et ark- eller regnearkobjekt.

Før, etter, telle og skrive parametere er valgfrie.

Enten og før - Du kan bare angi en av disse parameterne. De er av typen Variant og kan enten representere arket lokalisere før eller etter den du vil kopiere.

Grev-parameteren er også en variant. Det representerer antall ark du vil legge til.

Type-parameteren representerer typen ark du vil legge til.

  • xlWorkSheet - legger til et regneark
  • xlChart - legger til et diagramark
  • xlExcel4MacroSheet - legger til et makroark (Excel4)
  • xlExcel4IntlMacroSheet - adss et makroark
  • xlDialogSheet - legger til et dialogboks.

NB: Ikke glem å endre navn på parametrene dine, eller syntaxen vil returnere nedenstående feil:

 ActiveWorkbook.Sheets.Add Before: = Regneark (Worksheets.Count),, 1, xlChart 

Eksempler på bruk

Legg et ark etter det siste arket i arbeidsboken:

 Ark.Add Etter: = Regneark (Worksheets.Count) 

Legger til tre ark i "første posisjon" i den aktive arbeidsboken:

 ActiveWorkbook.Sheets.Add Before: = Regneark (1), Count: = 3 

Legger til et diagramark i en arbeidsbok med navnet "Wbk18" (Open!) Etter at arket heter "Sheet4"

 WorkBooks ("Wbk18"). Ark.Add Etter: = Regneark ("Sheet4"), Type: = xlChart 

Test av arket

Sjekk om ark allerede finnes i arbeidsboken

 Feil_Exist = (Workbooks (strWbk) .Sheets (strWsh) .Name = strWsh). Feil_Exist = (Workbooks (strWbk) .Sheets (strWsh) .Name = strWsh) Feil_Exist (strWbk Som Streng, StrWsh Som Streng) Som Boolsk 'Gestionnaire d'Erreur På Feil Fortsett Neste' Sluttfunksjon 

Sjekk om filnavnet inneholder forbudte tegn

 'Test deg selv om du vil ha en karaktær på en funksjon. Funksjon Valid_Name (strName As String, strChr As String) Som Boolean Dim I Som Byte, Tb_Car () Som String, StrProhib As String strProhib = "/ \: *?" "|" 'Liste over karaktærer i etapper' Tb_Car = Split (StrConv (strProhib, vbUnicode), Chr $ (0)) 'Boucle sur tous les caractères à éviter' Nota: le -1 er dû au split de la chaine par le séparateur Chr ) 'En effet, la chaine se terminant par Chr (0) il convient d'exclure ce dernier caractère For i = LBound (Tb_Car) Til Ubound (Tb_Car) - 1' Test si la chaîne contient un caractère prohibé Hvis InStr (strName, Tb_Car (i))> 0 Så er det: Return False Valid_Name = False 'ET Retur le caractère prohibé strChr = Tb_Car (i) Avslutt Funksjon Slutt Hvis Neste Jeg Siter OK: Retur True Valid_Name = True End Function 

Ringer bekreftelsesfunksjonen

Koden er den samme for både Kopier eller Add-metoden.
 Sub Principale () Dim strNewName Som streng, strCara As String strNewName = "NewSheet" Hvis Valid_Name (strNewName, strCara) = False Så MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Exit Sub End Hvis If Feuil_Exist (ThisWorkbook.Name, strNewName) = True Så er MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans ce classeur.", vbCritical Exit Sub End Hvis ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Kopier etter: = Sheets (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Noen nyttige tips for Office 2013

Office 2013 bringer to komplementære metoder til tidligere sett:
  • Kopier en rekke celler til et ark og flere ark
  • Add2-metoden for samlinger av diagrammer-objekter.

Kopier en rekke celler ved hjelp av FillAcrossSheets-metoden

Denne metoden er bare tilgjengelig for Office 2013. Du vil kopiere rekkevidde av celler fra "Sheet1" til "Sheet3", "Sheet5" og "Sheet7".

 Sheets = Array ("Sheet3", "Sheet5", "Sheet7") Sheets (Sheets) .FillAcrossSheets Worksheets ("Sheet1"). Område ("A1: C5") 

Parametrene til denne metoden er:

  • Område: Påkrevd
  • Type: Valgfritt
  • xlFillWithAll: Kopier innhold og formater.
  • xlFillWithContents: Kopier innholdet.
  • xlFillWithFormats: Kopier formater.

Add2-metoden

Denne metoden er bare tilgjengelig for Office 2013. Denne metoden gjelder samlinger av diagrammerobjekter og returnerer en " Runtime " -feil når den brukes sammen med Arkiver og WorkSheets-objekter. Ingen mer informasjon om Microsoft.com unntatt syntaks:

uttrykk. Legg til ( før, etter, telle, nytt ut )

Ekspresjon representerer et regnearkobjekt

Parametrene er identiske med Add-metoden, bare erstatt Type parameteren med NewLayout. Hvis NewLayout er satt til True, settes grafikken inn med de nye reglene.

Forrige Artikkel Neste Artikkel

Beste Tips