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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 10:45   #1
aik2029
Новичок
Джуниор
 
Регистрация: 14.11.2011
Сообщений: 2
По умолчанию обнаружение ошибок

Скажите, пожалуйста, как в vba сделать автоматическую проверку на необъявленные переменные?
для примера, есть код

Код:
Const ROW = 4, COL = 6
Dim aArray(ROW * COL) As String
Dim iArrayLength As Integer
Dim sArray As String

Sub func1()
sArray = Empty
iArrayLength = 0
    
    For i = 1 To ROW
        For j = 1 To COL
            aArray(cnt) = Cells(i, j) ' переменная cnt не объявлена
            iArrayLength = iArrayLength + 1
        Next j
    Next i
    
    
    For i = 1 To iArrayLength
        If i Mod COL = 0 Then
            sArray = sArray & aArray(i - 1) & vbCrLf
        Else
            sArray = sArray & aArray(i - 1) & vbTab
        End If
    Next i
    
    MsgBox sArray
End Sub
на выходе получается неверный результат. В настройках редактора все галочки включены
aik2029 вне форума Ответить с цитированием
Старый 14.11.2011, 10:49   #2
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

В декларацию каждого модуля пишите
Код:
Option Explicit
Djeki вне форума Ответить с цитированием
Старый 14.11.2011, 10:57   #3
aik2029
Новичок
Джуниор
 
Регистрация: 14.11.2011
Сообщений: 2
По умолчанию

спасибо за ответ
aik2029 вне форума Ответить с цитированием
Старый 14.11.2011, 11:14   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

"все галочки включены" - очевидно не все
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.11.2011, 11:43   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Галка "Require variable declaration" влияет только на вновь создаваемые модули. В существующих модулях Option Explicit не появляется (иначе вполне рабочие процедуры, но написанные без объявления переменных, перестанут выполняться).
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение лиц на фото TacoBell Помощь студентам 0 08.11.2011 18:11
Возможен ли отлов ошибок "чужих" программ без скана экрана на предмет окон-ошибок? Человек_Борща Общие вопросы Delphi 4 21.04.2011 00:18
Обнаружение сервера ivan_90 Работа с сетью в Delphi 2 04.10.2010 15:30
обнаружение ошибок makar575 Фриланс 3 18.12.2007 07:56