VBA Получаване на име на лист / Преименуване на лист

Този урок ще обхваща взаимодействието с имената на листове във VBA.

Вземете име на лист

Имената на листове се съхраняват в Име собственост на Листи или Работни листове обект. Името на листа е името на раздела, което се вижда в долната част на Excel:

Вземете име на ActiveSheet

Това ще покаже името на ActiveSheet в поле за съобщение:

1 MsgBox ActiveSheet.Name

Вземете име на лист по номер на индекс

Това ще покаже името на първия работен лист в поле за съобщение:

1 MsgBox листове (1). Име

Това ще покаже името на последния работен лист в работната книга:

1 MsgBox Sheets (Sheets.Count). Име

Вземете име на лист по кодово име

В редактора на VBA има опция за промяна на „кодовото име“ на лист. Кодовото име не се вижда от потребителя на Excel и може да се види само в редактора на VBA:

Във VBA, когато работите с Таблици, можете да се позовавате на обичайното име на раздел:

1 Таблици („TabName“). Активирайте

или кодовото име на VBA:

1 CodeName.Activate

Позоваването на кодовото име е желателно в случай, че името на раздела Sheet някога се промени. Ако разрешите на потребителския достъп на Excel да променя имената на листове, трябва да се позовавате на кодовото име във вашия VBA код, така че несъответствието на името на раздела на лист да не причини грешка. Кодовите имена на листа са обсъдени по -подробно тук.

За да получите името на листа, използвайки кодовото име на VBA, направете следното:

1 MsgBox CodeName.Name

Преименуване на лист

Можете да преименувате Таблици, като регулирате име собственост на Листи или Работни листове обект.

Преименувайте ActiveSheet

1 ActiveSheet.Name = "Ново име"

Преименувайте листа по име

1 Листове ("OldSheet"). Name = "NewName"

Преименувайте листа по индексния номер на листа

Тук използваме 1, за да преименуваме първия лист в работната книга.

1 Листове (1) .Name = "Ново име"

Преименувайте листа по кодово име

Този код ще преименува лист, използвайки кодовото му име VBA (обсъдено по -горе):

1 Component.Name = "Ново име"

Проверете дали името на листа съществува

Създадохме функция за тестване дали лист с определено име вече съществува.

123456789101112 „Тествайте дали диапазон съществува на лист.„Оставете диапазона празен, за да проверите дали листът съществува'Входове:'WhatSheet - Име на низ на лист (преди "Sheet1")'WhatRange (Незадължително, По подразбиране = "A1") - Име на низ за диапазон (например "A1")Функция RangeExists (WhatSheet As String, незадължително ByVal WhatRange As String = "A1") Като BooleanЗатъмняване като диапазонНа грешка възобновяване следващоЗадайте тест = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0При грешка GoTo 0Крайна функция

Функцията ще върне TRUE, ако листът съществува, или FALSE, ако не.

Използвайте функцията така:

123 Sub Test_SheetExists ()MsgBox RangeExists ("настройка")End Sub

Копирайте лист и преименувайте

Този пример е от нашата статия за Копиране на листове.

След копиране и поставяне на лист, новосъздаденият лист става ActiveSheet. Така че, за да преименувате копиран лист, просто използвайте ActiveSheet.Name:

12345678 Sub CopySheetRename2 ()Листове ("Sheet1"). Копиране след: = Sheets (Sheets.Count)На грешка възобновяване следващоActiveSheet.Name = "Последен лист"При грешка GoTo 0End Sub

Забележка: Добавихме обработка на грешки, за да избегнем грешки, ако името на листа вече съществува.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave