Как при создании нового рабочего листа синхронизировать имена этого листа?
Категория: Basic
2012-06-28 18:59:58
code: #vba
Private Sub Add_And_SynchronizeName() iNewName$ = "Archive" 'укажите своё имя листа With ThisWorkbook If Not .ProtectStructure Then .Worksheets.Add.Name = iNewName$ With .VBProject.VBComponents .Item(.Count).Name = iNewName$ End With Else MsgBox "В рабочей книге : " & .Name & vbCrLf & _ "невозможно создание нового листа", vbCritical, "" End If End With End Sub
code: #vba
Private Sub Add_And_SynchronizeName2() iNewName$ = "Archive2" 'укажите своё имя листа With ThisWorkbook If Not .ProtectStructure Then Dim iWorksheet As Worksheet Set iWorksheet = .Worksheets.Add iWorksheet.Name = iNewName$ Dim iVBComponents As Object Set iVBComponents = .VBProject.VBComponents iVBComponents(iWorksheet.CodeName).Name = iNewName$ Else MsgBox "В рабочей книге : " & .Name & vbCrLf & _ "невозможно создание нового листа", vbCritical, "" End If End With End Sub
Для создания общего имени необходимо учитывать особенности каждого имени, т.к. у каждого имени существуют свои ограничения:
Имя (Name):
- Имя нового рабочего листа не должно совпадать с именами уже имеющихся листов (Sheets)
- Имя листа не должно содержать более 31 символа.
- Имя листа не должно содержать следующих символов / \ ? : *
- кроме того, существует ограничение на порядок ввода [ ]
Кодовое (программное) имя (CodeName):
- Кодовое имя нового рабочего листа не должно совпадать с кодовыми именами уже имеющихся рабочих листов и листов диаграмм (Worksheets & Charts)
- Кодовое имя рабочего листа не должно содержать более 31 символа.
- Первый символ в имени должен быть только буквой (кодовое имя не может начинаться с числовых значений или символа подчёркивания)
- Кодовое имя может содержать только буквы, числовые значения и символ подчёркивания (и не может содержать только числа и/или символ подчёркивания см. пункт 3)
Поделиться: