Страница: 1 |
Страница: 1 |
Вопрос: Вызов процедуры ???
Добавлено: 05.03.08 04:26
Автор вопроса: Igor
Привет всем!
Помогите разобраться.....
объявлена примерно такая процедура:
Public Sub SNScan(ToolSheet, ToolName As String, SNCol, HRSCol As Byte)
Bla, bla, bla...
End Sub
Переменные внутри не меняются. Используется только их значение.
Вызов SNScan ("Bla1", "Bla2", 5, 6) - не прокатывает
(сообщение о синтаксической ошибке)
Вызов SNScan "Bla1", "Bla2", 5, 6 - работает!
Вопрос - почему?
Сам вид второго вызова меня просто бесит. На мой взгляд, крайне хреново читабелен..... В тексте параметры просто теряются на общем фоне.
Можно ли как-нибудь выкрутиться и оставить скобки.
Если объявляется один параметр, то все работает и со скобками.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
el-paso
Вопросов: 3
Ответов: 164
Профиль | | #1
Добавлено: 05.03.08 16:07
И что тут удивительного? Это синтаксис VB такой.
Если вызываешь просто процедуру, то скобки указывать не надо.
Если уж непременно хочется со скобками, то юзай конструкцию:
Номер ответа: 2
Автор ответа:
Igor
Вопросов: 3
Ответов: 5
Профиль | | #2
Добавлено: 05.03.08 16:52
Спасибо!
С VBA я работаю по необходимости. Так бы ни за что с ним не связался.
У меня еще вопрос.
VB запросто проглатывает необъявленные переменные, и работает с ними как ни в чем не бывало. Собственно об этом я и раньше знал. Это очень плохо! Можно ли как-то отменить эту несуразность директивой или еще как?
Номер ответа: 3
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #3
Добавлено: 05.03.08 17:07
В начале кода модуля напиши
Тогда, при обращении к необъявленной переменной, компилятор будет орать, что и нам и требуется
Также можно сделать, чтобы эта опция компилятора автоматом добавлялась в код. Это делается в меню редактора VBA:
Tools - Options - Require Variable Declaration
Номер ответа: 4
Автор ответа:
Igor
Вопросов: 3
Ответов: 5
Профиль | | #4
Добавлено: 06.03.08 04:32
Громадное спасибо!