Denne vejledning dækker interaktion med arknavne i VBA.
Få arknavn
Arknavne gemmes i Navn ejendom af Ark eller Arbejdsark objekt. Arknavnet er "fanebladet", der er synligt nederst i Excel:
Hent ActiveSheet -navn
Dette viser ActiveSheet -navnet i en meddelelsesboks:
1 | MsgBox ActiveSheet.Name |
Få arknavn efter indeksnummer
Dette viser det første regnearks navn i en meddelelsesboks:
1 | MsgBox Sheets (1). Navn |
Dette viser navnet på det sidste regneark i projektmappen:
1 | MsgBox Sheets (Sheets.Count). Navn |
Få arknavn efter kodenavn
I VBA Editor er der en mulighed for at ændre "kodenavn" på et ark. Kodenavnet er ikke synligt for Excel -brugeren og kan kun ses i VBA Editor:
I VBA kan du, når du arbejder med Sheets, referere til det sædvanlige fanenavn:
1 | Ark ("Tabulatornavn"). Aktiver |
eller VBA -kodenavnet:
1 | Kodenavn.Aktiver |
Det er ønskeligt at henvise til kodenavnet, hvis fanebladets ark nogensinde ændres. Hvis du tillader dig Excel -brugeradgang til ændring af arknavne, skal du referere til kodenavnet i din VBA -kode, så et arkfane -navn ikke matcher en fejl. Arkkodenavne diskuteres mere detaljeret her.
Gør følgende for at få arknavnet ved hjælp af VBA -kodenavnet:
1 | MsgBox CodeName.Name |
Omdøb ark
Du kan omdøbe Sheets ved at justere navn ejendom af Ark eller Arbejdsark objekt.
Omdøb ActiveSheet
1 | ActiveSheet.Name = "Nyt navn" |
Omdøb ark med navn
1 | Sheets ("OldSheet"). Name = "NewName" |
Omdøb ark efter arkindeksnummer
Her bruger vi 1 til at omdøbe det første ark i projektmappen.
1 | Ark (1) .Name = "Nyt navn" |
Omdøb ark med kodenavn
Denne kode omdøber et ark ved hjælp af dets VBA -kodenavn (diskuteret ovenfor):
1 | Component.Name = "Nyt navn" |
Kontroller, om arknavn findes
Vi oprettede en funktion for at teste, om der allerede findes et ark med et bestemt navn.
123456789101112 | 'Test om der findes et område på et ark.'Lad området være tomt for at teste, om der findes et ark'Indgange:'WhatSheet - Arkets strengnavn (f.eks. "Ark1")'WhatRange (Valgfrit, Standard = "A1") - Stringnavn for område (f.eks. "A1")Function RangeExists (WhatSheet As String, Valgfri ByVal WhatRange As String = "A1") Som boolskDim test As RangeVed fejl Genoptag næsteIndstil test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Ved fejl GoTo 0Afslut funktion |
Funktionen returnerer SAND, hvis arket eksisterer, eller FALSKT, hvis det ikke gør det.
Brug funktionen sådan:
123 | Sub Test_SheetExists ()MsgBox RangeExists ("opsætning")Afslut Sub |
Kopier ark og omdøb
Dette eksempel er fra vores artikel om kopiering af ark.
Efter kopiering og indsættelse af et ark bliver det nyoprettede ark til ActiveSheet. Så for at omdøbe et kopieret ark, skal du blot bruge ActiveSheet.Name:
12345678 | Sub CopySheetRename2 ()Ark ("Sheet1"). Kopiér efter: = Sheets (Sheets.Count)Ved fejl Genoptag næsteActiveSheet.Name = "LastSheet"Ved fejl GoTo 0Afslut Sub |
Bemærk: Vi tilføjede fejlhåndtering for at undgå fejl, hvis arknavnet allerede findes.