Ta vadnica bo zajemala interakcijo z imeni listov v VBA.
Pridobite ime lista
Imena listov so shranjena v Ime lastnina Listi ali Delovni listi predmet. Ime lista je ime »zavihka«, ki je vidno na dnu Excela:
Pridobite ime ActiveSheet
To bo prikazalo ime ActiveSheet v polju za sporočila:
1 | MsgBox ActiveSheet.Name |
Pridobite ime lista po številki indeksa
To bo prikazalo ime prvega delovnega lista v polju za sporočila:
1 | Listi MsgBox (1). Ime |
To bo prikazalo ime zadnjega delovnega lista v delovnem zvezku:
1 | MsgBox Sheets (Sheets.Count) .Ime |
Pridobite ime lista po imenu kode
V urejevalniku VBA obstaja možnost, da spremenite »kodno ime« lista. Kodirano ime ni vidno uporabniku Excela in ga je mogoče videti samo v urejevalniku VBA:
V VBA se pri delu s preglednicami lahko sklicujete na običajno ime zavihka:
1 | Listi ("TabName"). Aktivirajte |
ali kodno ime VBA:
1 | CodeName.Aktiviraj |
Sklicevanje na kodno ime je zaželeno, če se ime zavihka List kdaj spremeni. Če uporabniku Excela dovolite dostop do spreminjanja imen listov, se skličite na kodno ime v kodi VBA, da neujemanje imena zavihka List ne povzroči napake. Kodirana imena listov so podrobneje obravnavana tukaj.
Če želite dobiti ime lista z imenom kode VBA, naredite naslednje:
1 | MsgBox CodeName.Name |
Preimenuj list
Liste lahko preimenujete tako, da prilagodite ime lastnina Listi ali Delovni listi predmet.
Preimenujte ActiveSheet
1 | ActiveSheet.Name = "Novo ime" |
Preimenujte list po imenu
1 | Listi ("OldSheet"). Name = "NewName" |
Preimenujte list po indeksni številki lista
Tukaj uporabljamo 1 za preimenovanje prvega lista v delovnem zvezku.
1 | Listi (1) .Name = "Novoime" |
Preimenujte list po imenu kode
Ta koda bo preimenovala list z njegovim kodnim imenom VBA (obravnavano zgoraj):
1 | Component.Name = "Novo ime" |
Preverite, ali ime lista obstaja
Ustvarili smo funkcijo za preverjanje, če List z določenim imenom že obstaja.
123456789101112 | "Preizkusite, če obseg obstaja na listu.'Pustite območje prazno, da preizkusite, ali list obstaja'Vhodi:'WhatSheet - Ime niza lista (ex "Sheet1")'WhatRange (izbirno, privzeto = "A1") - Ime niza obsega (npr. "A1")Funkcija RangeExists (WhatSheet As String, Izbirno ByVal WhatRange As String = "A1") Kot BooleanZatemni preskus kot obsegOn Napaka Nadaljuj NaprejNastavi test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Pri napaki Pojdi na 0Končana funkcija |
Če obstaja list, bo funkcija vrnila TRUE, če pa ne, FALSE.
Funkcijo uporabite tako:
123 | Sub Test_SheetExists ()MsgBox RangeExists ("nastavitev")End Sub |
Kopirajte list in preimenujte
Ta primer je iz našega članka o kopiranju listov.
Po kopiranju in lepljenju lista novonastali list postane ActiveSheet. Če želite preimenovati kopiran list, preprosto uporabite ActiveSheet.Name:
12345678 | Sub CopySheetRename2 ()List ("List1"). Kopiraj po: = List (Sheets.Count)On Napaka Nadaljuj NaprejActiveSheet.Name = "Zadnji list"Pri napaki Pojdi na 0End Sub |
Opomba: Dodali smo obravnavo napak, da bi se izognili napakam, če ime lista že obstaja.