Защо Option Explicit не хваща ReDim ‹undeclared›?

Някой знае ли защо това не извежда грешка Variable not defined, когато го компилирам?

'Class1.cls'
Option Explicit

Public Sub foo()
    ReDim fubar(1 To 2, 1 To 1)
End Sub

Погрешно ли разбирам как трябва да работи Option Explicit? Или има нещо нередно с този тест? Или това е просто грешка във VBA?

(Тествам това на Excel 2007)


person RBarryYoung    schedule 10.05.2013    source източник
comment
ReDim е стандартна (неявна) процедура, така че вие ​​просто предавате аргументите на процедура; Option Explicit не се задейства в този случай.   -  person Alexander Bell    schedule 10.05.2013
comment
@AlexBell Не, без ReDim предаването на недекларирана променлива към proc все още генерира грешка на недекларираната променлива. Мисля, че Адриен Лакроа е прав.   -  person RBarryYoung    schedule 10.05.2013
comment
Да, съгласен съм! Както и да е, окончателното заключение: това не е грешка, а документирано поведение.   -  person Alexander Bell    schedule 10.05.2013


Отговори (1)


От MSDN (http://msdn.microsoft.com/en-gb/library/y9341s4f%28v=vs.80%29.aspx)

"Когато Option Explicit се появи във файл, трябва изрично да декларирате всички променливи с помощта на изразите Dim или ReDim."

Така че ReDim работи в Option Explicit.

person Adrien Lacroix    schedule 10.05.2013
comment
Да, работи, но все още е лош начин за програмиране. Не знам обаче дали има влияние върху производителността. - person Adrien Lacroix; 10.05.2013