Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли в переключатель Switch вставлять серию инструкций?

248
14 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
В данный момент использую такую некрасивую конструкцию:
 
Код:
If InStr(LCase(iFName), "машинос") Then Range("A7").Font.ColorIndex = 2: Range("A7").Select: GoTo Calll
    If InStr(LCase(iFName), "лурги") Then Range("A8").Font.ColorIndex = 2: Range("A8").Select: GoTo Calll
    If InStr(LCase(iFName), "химия") Then Range("A9").Font.ColorIndex = 2: Range("A9").Select: GoTo Calll
    If InStr(LCase(iFName), "персона") Then Range("A10").Font.ColorIndex = 2: Range("A10").Select: GoTo Calll

Можно ли это все разместить в Switch? Он вроде быстрее работает - сразу переходит к нужному варианту.

Спасибо.

P.S. Просьба на Goto пока внимания не обращать :o
251
15 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Могу предложить такой вариант:
 
Код:
Sub ProcessIt(strTest, strRange)
If InStr(LCase(iFName), strTest) Then Range(strRange).Font.ColorIndex = 2: Range(strRange).Select: GoTo Calll
End Sub

ProcessIt("машинос", "A7")
ProcessIt("лурги", "A8")
ProcessIt("химия", "A9")

При условии, что IFName=Public
248
16 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Действительно, так компактнее и не давит на мою слабую психику ;)
Спасибо.
248
16 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Сразу не сообразил спросить. У меня мой код находится внутри Sub. Разве можно в один Sub вложить другой Sub?
251
17 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Нет, нельзя. Эту процедуру надо разместить отдельно, как и другие.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог