Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then' в случае изменения ИМЕННО и ТОЛЬКО в А1. Если попутно меняется что-то еще, то не меняем лист On Error Resume Next Me.Name = Range("A1") If Err.Number Then MsgBox "Лист с таким именем уже есть или имя некорректно." Range("A1") = Me.Name ' возвращает в А1 старое имя End If End If End Sub
[/vba]
Такой вариант [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then' в случае изменения ИМЕННО и ТОЛЬКО в А1. Если попутно меняется что-то еще, то не меняем лист On Error Resume Next Me.Name = Range("A1") If Err.Number Then MsgBox "Лист с таким именем уже есть или имя некорректно." Range("A1") = Me.Name ' возвращает в А1 старое имя End If End If End Sub
Извиняюсь, 1 вопрос по этой теме ещё. В ВБА впервые что-то делаю. Сохранить изменения не получается, не изменяется ничего в файле. Чтобы добавить код, кликаю правой кн. на лист внизу, выбираю "Исходных текст", далее появл.окно для кода, куда я пишу код, который мне здесь предлагался (с изменением ссылки на ячейку для названия). Далее кликаю на сохранение, выбираю "сохранить с макросами", но так ничего и не поменялось в наименовании листа (осталось прежним) . Где косяк?
Извиняюсь, 1 вопрос по этой теме ещё. В ВБА впервые что-то делаю. Сохранить изменения не получается, не изменяется ничего в файле. Чтобы добавить код, кликаю правой кн. на лист внизу, выбираю "Исходных текст", далее появл.окно для кода, куда я пишу код, который мне здесь предлагался (с изменением ссылки на ячейку для названия). Далее кликаю на сохранение, выбираю "сохранить с макросами", но так ничего и не поменялось в наименовании листа (осталось прежним) . Где косяк?Juanvl