Как при создании нового рабочего листа синхронизировать имена этого листа — Visual Basic(Бейсик)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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)

Leave a Comment