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 ) |