Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Используйте Option Explicit! / 25 сообщений из 40, страница 1 из 2
28.03.2010, 23:45
    #36547261
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Напишите в заголовке каждого своего модуля (то есть перед всеми другими переменными, функциями и процедурами):
Код: plaintext
Option Explicit


Что это значит?
Это значит, что отныне все переменные, которые вы используете, нужно будет объявить явно с помощью оператора объявления Dim .
То есть, если у вас есть процедура:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Command1_Click()

For i =  1  To  5 
  k = "Проход №" + CStr(i)
  '..............
  '..............
Next

End Sub
она должна стать такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Command1_Click()

Dim i As Integer, k As String
For i =  1  To  5 
  k = "Проход №" + CStr(i)
  '..............
  '..............
Next

End Sub


Зачем это нужно?
Если я (или кто-то другой) дал вам ссылку на этот пост, значит в своей программе вы допустили ошибку или проявили непонимание, которые можно устранить с помощью Option Explicit. Дело в том, что в случае отсутствия этой опции, VB/VBA встретив незнакомое ему слово, считает его новой переменной. Хотя вы, скорее всего, имели ввиду совершенно другое.


Типичные ошибки:
Код: plaintext
1.
2.
3.
4.
MyNiceVariable =  5 
'..............
If MyNceVariable =  5  Then '<= опечатка в имени переменной, условие не выполнится
                          'VBA решит, что вы ввели новую переменную
Код: plaintext
1.
2.
y = xmod10 'вариант ошибки в синтаксисе (вместо y = x mod 10)
           'VBA решит, что xmod10 - это новая переменная
Код: plaintext
1.
2.
Workbooks(Книга1).Close 'ошибка в использовании текстовой константы (нет кавычек)
                        'VBA решит, что Книга1 - это новая переменная
Код: plaintext
1.
2.
3.
4.
5.
6.
k = "Hello World"
'..............
'..............
'..............
p = k +  5  'использование переменной неверного типа (так как тип переменной
          'не объявлен явно в Dim)

Это далеко не полный перечень возможных ошибок. Еще раз повторю, что использование Option Explicit существенно сократит время решения вашей задачи, потому что вместо ожидания ответа на форуме вы получите вполне осмысленное сообщение от компилятора.

Tools => Options => Editor => Require Variable Declaration
Включите этот флажок и Option Explicit будет появляться автоматически в новых модулях (в старых не появится, нужно будет прописать вручную)

================================================================

Этот пост был написан специально для того, чтобы давать на него ссылки, ибо по моим наблюдениям, количество тех, чьи проблемы решило бы изложенное здесь, довольно велико.
...
Рейтинг: 0 / 0
29.03.2010, 11:04
    #36547665
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Как бы им и будущим поколениям внушить ссылку на этот пост?
...
Рейтинг: 0 / 0
29.03.2010, 11:25
    #36547729
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
> Автор: Antonariy
> Как бы им и будущим поколениям внушить ссылку на этот пост?

Попросить модератора "прилепить" топик :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
31.03.2010, 11:43
    #36552380
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Игорь Горбонос,

Я бы сделал это или факом, или десяткой советов как в форуме sql.
...
Рейтинг: 0 / 0
31.03.2010, 11:55
    #36552448
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
big-dukeЯ бы сделал это или факом, или десяткой советов как в форуме sql.

Придется писать еще девять?
...
Рейтинг: 0 / 0
31.03.2010, 11:59
    #36552461
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
> Автор: big-duke
> Я бы сделал это или факом, или десяткой советов как в форуме sql.

ну тогда тебе и картыкнопку в руки :D
Я за

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
01.04.2010, 12:36
    #36555122
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Игорь Горбонос,

Я все-таки предлагаю автору добавить новый топик в FAQ с указанием нового раздела Visual Basic.
...
Рейтинг: 0 / 0
01.04.2010, 13:06
    #36555263
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Добавил.

Правда эта форма не работает в FF. Пришлось через Оперу.
...
Рейтинг: 0 / 0
01.04.2010, 14:33
    #36555576
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
> Автор: big-duke

Теперь понял :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.04.2010, 13:49
    #36574063
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
big-duke,

Раз уж ты здесь... Что-то не появляется в FAQ статья. Или не ты отвечаешь за это дело?
...
Рейтинг: 0 / 0
13.04.2010, 09:41
    #36575543
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Shocker.Pro,

я написал Алексу, надеюсь, что в ближайшее время вопрос будет решен.
...
Рейтинг: 0 / 0
13.04.2010, 10:11
    #36575625
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
> Автор: big-duke
> я написал Алексу, надеюсь, что в ближайшее время вопрос будет решен.

SQL.RU
Информация

У вас нет прав на чтение данного форума.






Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.04.2010, 17:28
    #36577017
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
А нельзя ли это форум переименовать в "Visual Basic 6 "? А то многие считают, что VB.NET это сюда.

Jah loves you.
...
Рейтинг: 0 / 0
13.04.2010, 17:29
    #36577024
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
AntonariyА нельзя ли это форум переименовать в "Visual Basic 6 "? А то многие считают, что VB.NET это сюда.

Jah loves you.

да пусть пишут. найдём, что ответить или послать куда надо
...
Рейтинг: 0 / 0
13.04.2010, 17:31
    #36577031
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
это я к тому, что уж лучше .NET, чем вопросы про MS Office макросы
...
Рейтинг: 0 / 0
14.04.2010, 09:55
    #36577882
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Konst_One,

Выдержка из правил форума
MagnusVBA(Word, Excel), VBS также охватываются тематикой форума
...
Рейтинг: 0 / 0
14.04.2010, 10:26
    #36577945
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
big-duke,

Да никто не спорит против правил, только вопросы по VBA совсем детские стали
AndrF©С чем было интересно остальные для себя уже разобрались - дальше уже стало просто неинтересно...
Так хоть что-то новое :)
...
Рейтинг: 0 / 0
15.06.2010, 15:52
    #36688029
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Shocker.Probig-duke,

Раз уж ты здесь... Что-то не появляется в FAQ статья. Или не ты отвечаешь за это дело?
Раздел добавлен , так что - вперед.
...
Рейтинг: 0 / 0
15.06.2010, 15:53
    #36688037
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
big-dukeShocker.Probig-duke,

Раз уж ты здесь... Что-то не появляется в FAQ статья. Или не ты отвечаешь за это дело?
Раздел добавлен , так что - вперед.

Ох, ё... я ж его адаптировал тогда...
Ну ладно, сделаю еще раз, спасибо.
...
Рейтинг: 0 / 0
16.06.2010, 13:59
    #36689997
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Shocker.ProНу ладно, сделаю еще раз, спасибо.
отправил
...
Рейтинг: 0 / 0
16.06.2010, 17:00
    #36690641
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Shocker.Pro,

Your faq , enjoy,
...
Рейтинг: 0 / 0
16.06.2010, 17:04
    #36690651
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Ну раз уж у нас появился собственных раздел, надо срочно туда еще че-нить понаписать
...
Рейтинг: 0 / 0
16.06.2010, 17:10
    #36690675
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Shocker.Pro,

Я давно собирался по lastusedrow для Excel
...
Рейтинг: 0 / 0
16.06.2010, 17:13
    #36690687
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
big-dukeShocker.Pro,
Я давно собирался по lastusedrow для Excel
Кстати, да, всплывает...
Но я плаваю в этой теме, помочь не могу :-/
...
Рейтинг: 0 / 0
17.06.2010, 10:02
    #36691619
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Используйте Option Explicit!
Могу предложить это .
Как думаете, стоит?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Используйте Option Explicit! / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]