Цитата |
---|
[A1:A10] - эквивалент Range("A1:A10") со свойством по умолчанию Value |
Неверно.
Квадратные скобки обозначают вычисление или выполнение. Если внутри кода есть
["выражение"], то VBA пытается сначала выполнить VBA-код (если выражение в скобках не является математическим выражением и совпадает с именем свойства, метода, процедуры, функции или UDF и т.п.)
Код |
---|
Sub Test_MBox()
[MsgBox] "Вызвали встроеный класс VBA"
End Sub
Sub Test_MBox2()
[MBox]
End Sub
Sub MBox()
MsgBox "Вызвали свою процедуру из VBA"
End Sub |
Если VBA ничего не нашел у себя с чем можно было бы сопоставить "выражение", то только после этого он продолжает искать уже в объектной модели Excel, среди имен и формул.
Насчет свойства по умолчанию.Заполните диапазон А1В10 значениями и выполните код ниже:
Код |
---|
Range("A1:A10") = Range("B1:B10") |
Потом долго радуйтесь значению по умолчанию :-)
Поэтому я в своих кодах всегда указываю какой свойство объекта мне надо присвоить или получить.