Как перейти на лист N, если есть N?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Андрей45
Сообщения: 11
Зарегистрирован: 28 окт 2009, 20:34

У меня есть переменная N, она в программе принимает значения от 1 до 20.
Мне надо, в зависимости от значения N, перейти на лист с именем, равным N. То есть, если N = 5, то мне надо перейти на лист, который называется "5".

Это уже понял.

А как получить номер текущего листа?
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Код: Выделить всё

[color=darkblue]Sub[/color] test()
    n = 5
    Worksheets(n).Activate [color=green]' так мы перейдём на лист с ИНДЕКСОМ N[/color]
    Worksheets([B][color="Red"]CStr([/color][/B]n[color="#ff0000"][B])[/B][/color]).Activate [color=green]' а Вам надо так - перейти на лист с ИМЕНЕМ N[/color]
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Андрей45
Сообщения: 11
Зарегистрирован: 28 окт 2009, 20:34

Спасибо большое. А на второй вопрос ответите? :confused:
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

А как получить номер текущего листа?
А что такое - номер?
Я не знаю такого свойства листа...

Может, так подойдёт?

Код: Выделить всё

[color=darkblue]Sub[/color] test()
    MsgBox ActiveSheet.Index    [color=green]' индекс листа[/color]
    MsgBox ActiveSheet.Name    ' имя листа
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Андрей45
Сообщения: 11
Зарегистрирован: 28 окт 2009, 20:34

ActiveSheet.Index
Спасибочки! Именно вот это мне и было надо!!! Что бы я без Вас делал?!
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Что бы я без Вас делал?!
Изучали бы справку по VBA, и объектную модель Excel. (как это делал я, когда у меня не было интернета)

В этом случае Вы узнали бы НАМНОГО больше :)
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Андрей45
Сообщения: 11
Зарегистрирован: 28 окт 2009, 20:34

EducatedFool писал(а):Изучали бы справку по VBA
Я бы с удовольствием, но она по-английски. А где найти по-русски, не подскажете? :confused:
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Здесь есть справочник по функциям VB на русском языке.
Справка по VBA на русском языке, вроде бы, была в excel 97.
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Андрей45
Сообщения: 11
Зарегистрирован: 28 окт 2009, 20:34

На досуге почитаю. Ну, а сейчас, мне очень срочно ещё один макрос нужен. Хочу на лист поместить таймер обратного отсчёта. Когда перешли на этот лист - пошёл отсчет. Через 1 минуту - звук какой-нибудь, типа, ответы сдавайте.
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Когда перешли на этот лист - пошёл отсчет
А если во время отсчёта пользователь переключился на другой лист - что делать?
Приостанавливать таймер?
Или не позволять пользователю переключаться на другой лист?
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Ответить