Показать полную графическую версию : [решено] Excel. Присвоить имя листу с определенной ячейки.
andre-tr
19-03-2013, 12:53
Здравствуйте!
Возник вопрос. Как присвоить имя листу экселя значение с определенной ячейки, т.е. нужно чтоб при изменении значения в ячейки "В2" изменялось имя текущего листа на то значение в ячейке. Ячейка является раскрывающимся списком. Пример в приложенном файле.
Delirium
19-03-2013, 14:25
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 ставим нужную ячейку и будет счастье :)
А вообще все это делается очень просто. Запускается запись макроса - изменяем имя книги, изменяем значение в ячейке - останавливаем макрос. Смотрим полученный код, там есть все, что нужно.
andre-tr
19-03-2013, 15:14
Спасибо! Все получилось.
А можно сделать не для всей книги, а только для отдельного листа?
А можно сделать не для всей книги, а только для отдельного листа? »
А Вам что показали? Как раз меняется один текущий лист (что просили, то и дадено). Если надо изменить другой, то вместо ActiveSheet подставляем Worksheets(номер_листа).
andre-tr
20-03-2013, 10:28
Спасибо за ответ, разобрался.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.