Ši pamoka apims sąveiką su lakštų pavadinimais VBA.
Gaukite lapo pavadinimą
Lapų pavadinimai saugomi vardas nuosavybė Lakštai arba Darbo lapai objektas. Lapo pavadinimas yra „skirtuko“ pavadinimas, matomas „Excel“ apačioje:
Gaukite „ActiveSheet“ pavadinimą
Pranešimų laukelyje bus rodomas „ActiveSheet“ pavadinimas:
1 | „MsgBox ActiveSheet.Name“ |
Gaukite lapo pavadinimą pagal indekso numerį
Pranešimų laukelyje bus rodomas pirmojo darbalapio pavadinimas:
1 | „MsgBox Sheets“ (1). Pavadinimas |
Bus rodomas paskutinio darbaknygės darbalapio pavadinimas:
1 | „MsgBox Sheets“ („Sheets.Count“). Pavadinimas |
Gaukite lapo pavadinimą pagal kodo pavadinimą
VBA redaktoriuje yra galimybė pakeisti lapo „kodo pavadinimą“. „Excel“ vartotojas nemato kodo pavadinimo ir gali būti matomas tik VBA redaktoriuje:
VBA, dirbdami su skaičiuoklėmis, galite nurodyti įprastą skirtuko pavadinimą:
1 | Skaičiuoklės („TabName“). Suaktyvinkite |
arba VBA kodo pavadinimas:
1 | CodeName. Aktyvinti |
Nuoroda į kodo pavadinimą yra pageidautina, jei skirtuko „Lapas“ pavadinimas kada nors pasikeis. Jei leisite „Excel“ vartotojui prieigą prie keičiamų lapų pavadinimų, turėtumėte nurodyti kodo pavadinimą savo VBA kode, kad skirtuko „Sheet“ pavadinimo neatitikimas nesukeltų klaidos. Lapų kodų pavadinimai išsamiau aptariami čia.
Norėdami gauti lapo pavadinimą naudodami VBA kodo pavadinimą, atlikite šiuos veiksmus:
1 | „MsgBox“ kodo pavadinimas.pavadinimas |
Pervardyti lapą
Skaičiuokles galite pervardyti koreguodami vardas nuosavybė Lakštai arba Darbo lapai objektas.
Pervardykite „ActiveSheet“
1 | ActiveSheet.Name = "Naujas vardas" |
Pervardykite lapą vardu
1 | Skaičiuoklės ("OldSheet"). Name = "NewName" |
Pervardykite lapą pagal lapo indekso numerį
Čia mes naudojame 1, kad pervadintume pirmąjį darbaknygės lapą.
1 | Skaičiuoklės (1) .Name = "NewName" |
Pervardykite lapą pagal kodo pavadinimą
Šis kodas pervadins lapą naudodamas VBA kodo pavadinimą (aptartas aukščiau):
1 | Component.Name = "Naujas vardas" |
Patikrinkite, ar egzistuoja lapo pavadinimas
Mes sukūrėme funkciją, norėdami patikrinti, ar jau yra tam tikro pavadinimo lapas.
123456789101112 | „Patikrinkite, ar lape yra diapazonas.„Palikite diapazoną tuščią, kad patikrintumėte, ar lapas yra„Įėjimai:„WhatSheet - lapo eilutės pavadinimas (ex„ Sheet1 “)„WhatRange“ (pasirenkama, numatytoji = „A1“) - diapazono eilutės pavadinimas (ex „A1“)Funkcijų diapazonas Egzistuoja („WhatSheet“ kaip eilutė, pasirinktinai „ByVal WhatRange As String“ = „A1“) kaip loginis„Dim“ bandymas kaip diapazonasDėl klaidos Tęsti toliauNustatyti testą = ActiveWorkbook.Sheets (WhatSheet). Range (WhatRange)RangeExists = Klaidų skaičius = 0Klaida „GoTo 0“Pabaigos funkcija |
Funkcija grąžins TRUE, jei lapas yra, arba FALSE, jei ne.
Naudokite šią funkciją taip:
123 | Antrinis Test_SheetExists ()„MsgBox RangeExists“ („sąranka“)Pabaiga Sub |
Nukopijuokite lapą ir pervardykite
Šis pavyzdys yra iš mūsų straipsnio apie lapų kopijavimą.
Nukopijavus ir įklijavus lapą, naujai sukurtas lapas tampa „ActiveSheet“. Taigi, norėdami pervardyti nukopijuotą lapą, tiesiog naudokite „ActiveSheet“. Pavadinimas:
12345678 | Sub CopySheetRename2 ()Skaičiuoklės („Sheet1“). Kopijuoti po: = Sheets (Sheets.Count)Dėl klaidos Tęsti toliauActiveSheet.Name = "Paskutinis lapas"Klaida „GoTo 0“Pabaiga Sub |
Pastaba: pridėjome klaidų tvarkymą, kad išvengtume klaidų, jei lapo pavadinimas jau yra.