Ovaj vodič će pokriti interakciju s imenima listova u VBA -i.
Dobijte naziv lista
Nazivi listova pohranjeni su u Ime vlasništvo Listovi ili Radni listovi objekt. Naziv lista je naziv "kartice" koji je vidljiv pri dnu programa Excel:
Dobijte naziv aktivnog lista
Ovo će prikazati ime aktivnog lista u okviru za poruku:
1 | MsgBox ActiveSheet.Name |
Dobijte naziv lista prema indeksnom broju
Ovo će prikazati ime prvog radnog lista u okviru za poruku:
1 | MsgBox listovi (1). Naziv |
Ovo će prikazati naziv posljednjeg radnog lista u radnoj knjizi:
1 | MsgBox listovi (Sheets.Count) .Naziv |
Dobijte naziv lista prema nazivu koda
U VBA Editoru postoji mogućnost promjene "kodnog imena" lista. Naziv koda nije vidljiv korisniku programa Excel i može se vidjeti samo u VBA Editoru:
U VBA -i pri radu s tablicama možete se pozvati na uobičajeni naziv kartice:
1 | Tablice ("TabName"). Aktivirajte |
ili VBA kodni naziv:
1 | CodeName.Aktiviraj |
Pozivanje na kodni naziv poželjno je u slučaju da se naziv kartice Sheet ikada promijeni. Ako dopustite korisniku programa Excel pristup promjeni naziva listova, trebate se pozivati na kodni naziv u svom VBA kodu kako nepodudaranje naziva kartice Sheet ne bi uzrokovalo pogrešku. Kodni nazivi listova ovdje se detaljnije razmatraju.
Da biste dobili naziv lista pomoću naziva VBA koda, učinite sljedeće:
1 | MsgBox Kodni naziv.Naziv |
Promijeni naziv lista
Listove možete preimenovati podešavanjem Ime vlasništvo Listovi ili Radni listovi objekt.
Preimenujte ActiveSheet
1 | ActiveSheet.Name = "Novo ime" |
Preimenujte list prema imenu
1 | Tablice ("OldSheet"). Name = "NewName" |
Preimenujte list prema indeksnom broju listova
Ovdje koristimo 1 za preimenovanje prvog lista u radnoj knjizi.
1 | Listovi (1) .Name = "Novo ime" |
Preimenujte list prema šifriranom nazivu
Ovaj kôd će preimenovati list koristeći njegov VBA kodni naziv (raspravljano gore):
1 | Component.Name = "Novo ime" |
Provjerite postoji li naziv lista
Napravili smo funkciju za testiranje postoji li list s određenim imenom.
123456789101112 | 'Testirajte postoji li raspon na listu.'Ostavite raspon praznim kako biste provjerili postoji li list'Ulazi:'WhatSheet - Naziv niza lista (ex "Sheet1")'WhatRange (izborno, zadano = "A1") - naziv niza raspona (npr. "A1")Raspon funkcijaExists (WhatSheet As String, Opcijski ByVal WhatRange As String = "A1") Kao BooleanDim test kao rasponUključeno Slijedi nastavak greškePostavi test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RasponPostoji = Broj greške = 0Uključeno Greška Idi na 0Završna funkcija |
Funkcija će vratiti TRUE ako List postoji, ili FALSE ako ne postoji.
Koristite funkciju ovako:
123 | Pod Test_SheetExists ()MsgBox RangeExists ("postavljanje")Kraj podm |
Kopirajte list i preimenujte
Ovaj primjer je iz našeg članka o kopiranju listova.
Nakon kopiranja i lijepljenja lista, novonastali list postaje ActiveSheet. Dakle, da biste preimenovali kopirani list, jednostavno upotrijebite ActiveSheet.Name:
12345678 | Sub CopySheetRename2 ()Listovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)Uključeno Slijedi nastavak greškeActiveSheet.Name = "Zadnji list"Uključeno Greška Idi na 0Kraj podm |
Napomena: Dodali smo rukovanje pogreškama kako bismo izbjegli pogreške ako naziv lista već postoji.