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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2011, 11:48   #1
everest88
Пользователь
 
Регистрация: 20.02.2011
Сообщений: 11
По умолчанию как вернуться на текущий лист

Как правильно написать макрос чтоб в конце вернуться на текущий лист, если условие не выполнено
Пробовал так

Private Sub Worksheet_Deactivate()
Dim h As String
h = ActiveSheet.Name
If ------текст макроса---------- Then
MsgBox "Вернитесь на исходный лист-условие не выполнено !": Sheets("h").Activate
End If
End Sub

Ругается на Sheets("h").Activate Что не так?
everest88 вне форума Ответить с цитированием
Старый 27.02.2011, 11:56   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

кавычки не так Sheets(h).Activate
а вообще зачем возвращаться на текущий лист? если программа и так постоянно на текущем листе))) он тем и отличается от остальных, что он уже "текущий"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.02.2011, 12:03   #3
everest88
Пользователь
 
Регистрация: 20.02.2011
Сообщений: 11
По умолчанию

Да исх листы могут быть разными - если условие не выполняется то остаемся на текущем
то есть пытаемся перейти на другой лист - условие на текущем не выполнено -табличка выск - и обратно

А обратно сейчас не идет ..... (h) поправил
everest88 вне форума Ответить с цитированием
Старый 27.02.2011, 12:05   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и в таком варианте: Sheets(h).Activate???
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.02.2011, 12:30   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
А обратно сейчас не идет ..... (h) поправил
все правильно, при переходе на другой лист Worksheet_Deactivate
h = ActiveSheet.Name уже нового листа, того на который перешли
наверное нужно задать имя исходного листа строго
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 27.02.2011, 12:31   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

everest88, отписываться надо в темах, к-рые создаете. Вам же The_Prist подсказал на Планете, как надо.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 27.02.2011, 16:11   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
everest88, отписываться надо в темах, к-рые создаете. Вам же The_Prist подсказал на Планете, как надо.
И то верно! Вот даже ссылочка :-)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 27.02.2011, 19:26   #8
everest88
Пользователь
 
Регистрация: 20.02.2011
Сообщений: 11
По умолчанию

сейчас только попробовал - совет The_Prist помог РАБОТАЕТ !! Большое спасибо The_Prist и всем кто откликнулся
вроде элементарный вопрос - кажется что по логике все правильно оказывается нет ...
Единственное въехать никак не мог - The_Prist написал "....Посмотрите какое значение у переменной h. Это имя листа, который активен уже. Т.е. не тот, в котором код." Те получается что по команде Private Sub Worksheet_Deactivate() мы уже на другом листе - я то считал что в начале кода мы еще на текущем ... век живи век учись ...

Последний раз редактировалось everest88; 27.02.2011 в 19:53.
everest88 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать выбор листа на который будет ссылаться текущий лист? Pavarotti Microsoft Office Excel 10 24.02.2011 07:47
Как получить текущий век в С# ? PCmaster Общие вопросы .NET 4 20.04.2010 21:45
Как узнать текущий индекс в foreach boris-blade Общие вопросы .NET 4 25.03.2010 19:26
Как в с++ вернуться? Davlet M Помощь студентам 4 08.03.2010 20:13
Как получить текущий символ в консоли hard-t Общие вопросы C/C++ 0 20.12.2009 14:53