Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 17:39   #1
SashaS
Пользователь
 
Регистрация: 25.02.2012
Сообщений: 40
По умолчанию Как сохранить в переменной имя активного листа Excel

Здравствуйте. Допустим у меня есть документ Excel 2003. Есть 31 лист, и есть макрос который работает в зависимости от того на каком листе его запускать. ион должен принимать в качестве параметра имя листа, то есть число от 1 до 31.
я хочу чтобы когда пользователь выбирал лист, это число автоматически менялось.
Но я не знаю как сохранять имя листа в переменную, подскажите пожалуйста.
Спасибо
SashaS вне форума Ответить с цитированием
Старый 01.03.2012, 17:43   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в модуль книги вот этот
Код:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    NL = Sh.index
End Sub

Private Sub Workbook_Open()
    NL = activesheet.index
End Sub
NL - обьявите в программном модуле, как общедоступную переменную.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.03.2012, 19:46   #3
Shkoda
Пользователь
 
Аватар для Shkoda
 
Регистрация: 26.02.2010
Сообщений: 44
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
в модуль книги вот этот
Код:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    NL = Sh.index
End Sub

Private Sub Workbook_Open()
    NL = activesheet.index
End Sub
NL - обьявите в программном модуле, как общедоступную переменную.
Добрый день.

Игорь, позвольте поправить Вас, SashaS просил чтобы переменной было название листа.

Код:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    NL = Sh.Name
End Sub

Private Sub Workbook_Open()
    NL = ActiveSheet.Name
End Sub
Если не прав, приношу заранее извинение!
Shkoda вне форума Ответить с цитированием
Старый 01.03.2012, 20:04   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

четко описанные условия:
Цитата:
принимать в качестве параметра имя листа, то есть число от 1 до 31
дает возможность включить фантазию при выборе варианта решения.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.03.2012, 22:09   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Что-то я не пойму... А чем эта переменная не годится?

Код:
Sub tt()
MsgBox ActiveSheet.Name
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.03.2012, 11:40   #6
Shkoda
Пользователь
 
Аватар для Shkoda
 
Регистрация: 26.02.2010
Сообщений: 44
По умолчанию

IgorGO приношу извинения, логически подумал о числах месяца.
При ручном заполнении индекс листа не всегда будет совпадать с самим названием самого листа.
Shkoda вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как Sum запустить не для активного листа? gramp Microsoft Office Excel 2 30.07.2011 00:10
Spreadsheet - заполнение данными с активного листа Excel ELE-COM Microsoft Office Excel 0 23.05.2010 09:38
Как получить имя листа? ABCOz Microsoft Office Excel 2 29.11.2009 15:37
Как програмно изменить цвет ярлычка активного листа? ru3000 Microsoft Office Excel 9 19.07.2009 22:31
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06