Denne opplæringen vil dekke interaksjon med arknavn i VBA.
Få arknavn
Arknavn er lagret i Navn eiendommen til Ark eller Arbeidsark gjenstand. Arknavnet er "fanen" -navnet som er synlig nederst i Excel:
Få ActiveSheet -navn
Dette vil vise ActiveSheet -navnet i en meldingsboks:
1 | MsgBox ActiveSheet.Name |
Få arknavn etter indeksnummer
Dette vil vise det første regnearknavnet i en meldingsboks:
1 | MsgBox Sheets (1) .Name |
Dette vil vise navnet på det siste regnearket i arbeidsboken:
1 | MsgBox Sheets (Sheets.Count) .navn |
Få arknavn etter kodenavn
I VBA Editor er det et alternativ for å endre "kodenavnet" på et ark. Kodenavnet er ikke synlig for Excel -brukeren og kan bare sees i VBA Editor:
Når du arbeider med Sheets i VBA, kan du referere til det vanlige fanenavnet:
1 | Ark ("TabNavn"). Aktiver |
eller VBA -kodenavnet:
1 | Kodenavn. Aktiver |
Det er ønskelig å referere til kodenavnet i tilfelle arkfanenavnet noen gang endres. Hvis du gir Excel -brukeren tilgang til å endre arknavn, bør du referere til kodenavnet i VBA -koden, slik at et arkfane -navn ikke samsvarer med feil. Arknummernavn diskuteres mer detaljert her.
Gjør følgende for å få arknavnet ved å bruke VBA -kodenavnet:
1 | MsgBox -kodenavn. Navn |
Gi nytt navn til ark
Du kan gi nytt navn til Regneark ved å justere Navn eiendommen til Ark eller Arbeidsark gjenstand.
Gi nytt navn til ActiveSheet
1 | ActiveSheet.Name = "Nytt navn" |
Gi nytt navn til arket
1 | Ark ("OldSheet"). Navn = "Nytt navn" |
Endre navn på ark etter arkindeksnummer
Her bruker vi 1 til å gi nytt navn til det første arket i arbeidsboken.
1 | Ark (1) .Name = "Nytt navn" |
Gi nytt navn til arket etter kodenavn
Denne koden vil gi nytt navn til et ark ved å bruke VBA -kodenavnet (diskutert ovenfor):
1 | Component.Name = "Nytt navn" |
Sjekk om arknavn finnes
Vi opprettet en funksjon for å teste om et ark med et bestemt navn allerede eksisterer.
123456789101112 | 'Test om det finnes et område på et ark.'La området stå tomt for å teste om det finnes ark'Innganger:'WhatSheet - String Name of Sheet (ex "Sheet1")'WhatRange (valgfritt, standard = "A1") - Stringnavn i område (eks "A1")Function RangeExists (WhatSheet As String, Valgfritt ByVal WhatRange As String = "A1") Som boolskDim test As RangeVed feil Fortsett nesteSett test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Ved feil GoTo 0Sluttfunksjon |
Funksjonen vil returnere TRUE hvis arket eksisterer, eller FALSE hvis det ikke gjør det.
Bruk funksjonen slik:
123 | Sub Test_SheetExists ()MsgBox RangeExists ("oppsett")Slutt Sub |
Kopier ark og gi nytt navn
Dette eksemplet er fra vår artikkel om kopiering av ark.
Etter at du har kopiert og limt inn et ark, blir det nyopprettede arket ActiveSheet. Så for å gi nytt navn til et kopiert ark, bare bruk ActiveSheet.Name:
12345678 | Sub CopySheetRename2 ()Ark ("Sheet1"). Kopier etter: = Sheets (Sheets.Count)Ved feil Fortsett nesteActiveSheet.Name = "LastSheet"Ved feil GoTo 0Slutt Sub |
Merk: Vi la til feilhåndtering for å unngå feil hvis arkenavnet allerede eksisterer.