Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveWorkbook.ActiveSheet.Name <> ActiveWorkbook.ActiveSheet.Range("B2") Then
    ActiveWorkbook.ActiveSheet.Name = ActiveWorkbook.ActiveSheet.Range("B2")
    End If
End Sub
Вешаем событие на SheetChange для книги. Оно происходит при любом изменении в книге. В коде сверяется текущее имя книги и значение в ячейке. Если они не равно, происходит присваивание имени.
Можно и без проверки значения, но зачем эти лишние присваивания.
Вместо B2 ставим нужную ячейку и будет счастье

А вообще все это делается очень просто. Запускается запись макроса - изменяем имя книги, изменяем значение в ячейке - останавливаем макрос. Смотрим полученный код, там есть все, что нужно.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:25, 19-03-2013 | #2