Овај водич ће покрити интеракцију са именима листова у ВБА.
Добијте назив листа
Имена листова се чувају у Име власништво Листови или Радни листови објекат. Назив листа је назив „картице“ који је видљив при дну програма Екцел:
Добијте име активног листа
Ово ће приказати име активног листа у оквиру за поруку:
1 | МсгБок АцтивеСхеет.Наме |
Добијте назив листа према броју индекса
Ово ће приказати име првог радног листа у оквиру за поруку:
1 | МсгБок листови (1). Име |
Ово ће приказати назив последњег радног листа у радној свесци:
1 | МсгБок Схеетс (Схеетс.Цоунт) .Назив |
Добијте назив листа према кодном имену
У ВБА Едитор -у постоји опција за промену „кодног имена“ листа. Корисничко име програма Екцел није видљиво и може се видети само у ВБА Едитор -у:
У ВБА, када радите са Табелама, можете се позивати на уобичајени назив картице:
1 | Табеле („ТабНаме“). Активирајте |
или ВБА кодно име:
1 | ЦодеНаме.Ацтивате |
Позивање на кодно име је пожељно у случају да се назив картице Схеет икада промени. Ако дозволите корисничком програму Екцел приступ промени назива листова, требало би да се позовете на кодно име у свом ВБА коду како неподударање назива картице Схеет не би изазвало грешку. Овде се детаљније расправља о кодним именима листова.
Да бисте добили име листа користећи ВБА кодно име, урадите следеће:
1 | МсгБок ЦодеНаме.Наме |
Преименуј лист
Табеле можете да преименујете подешавањем име власништво Листови или Радни листови објекат.
Преименујте АцтивеСхеет
1 | АцтивеСхеет.Наме = "Ново име" |
Преименујте лист по имену
1 | Табеле ("ОлдСхеет"). Наме = "НевНаме" |
Преименујте лист према броју индекса листа
Овде користимо 1 за преименовање првог листа у радној свесци.
1 | Табеле (1) .Наме = "Ново име" |
Преименујте лист према називу кода
Овај код ће преименовати лист користећи његово ВБА кодно име (о чему је горе речено):
1 | Цомпонент.Наме = "Ново име" |
Проверите да ли постоји назив листа
Направили смо функцију за тестирање да ли лист са одређеним именом већ постоји.
123456789101112 | 'Тестирајте да ли распон постоји на листу.'Оставите распон празним да бисте тестирали постоји ли лист'Улази:'ВхатСхеет - Назив низа листа (ек "Схеет1")'ВхатРанге (Опционално, Подразумевано = "А1") - Назив низа опсега (нпр. "А1")Функција РангеЕкистс (ВхатСхеет Ас Стринг, Опционално БиВал ВхатРанге Ас Стринг = "А1") Као логичкоДим тест Ас РангеНа Грешка Настави даљеПостави тест = АцтивеВоркбоок.Схеетс (ВхатСхеет) .Ранге (ВхатРанге)РангеЕкистс = Ерр.Нумбер = 0Он Еррор ГоТо 0Завршна функција |
Функција ће вратити ТРУЕ ако Схеет постоји, или ФАЛСЕ ако не постоји.
Користите функцију овако:
123 | Суб Тест_СхеетЕкистс ()МсгБок РангеЕкистс ("подешавање")Енд Суб |
Копирајте лист и преименујте
Овај пример је из нашег чланка о копирању листова.
Након копирања и лепљења листа, новонастали лист постаје АцтивеСхеет. Дакле, да бисте преименовали копирани лист, једноставно користите АцтивеСхеет.Наме:
12345678 | Суб ЦопиСхеетРенаме2 ()Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број)На Грешка Настави даљеАцтивеСхеет.Наме = "Последњи лист"Он Еррор ГоТо 0Енд Суб |
Напомена: Додали смо руковање грешкама како бисмо избегли грешке ако назив листа већ постоји.