Объявите переменную Range
и присвойте ее Columns("C:C")
например, Set myRange = ActiveSheet.Columns("C:C")
(если это в стандартном модуле) или Set myRange = Me.Columns("C:C")
(если это в модуле рабочего листа).
Dim myRange As Range
Set myRange = Columns("C:C")
myRange.Formula = "..."
Затем, когда вы вводите точку в myRange.
вы получите раскрывающийся список с доступными членами, всплывающими подсказками для параметров и информацией во время компиляции. Причина, по которой вашему коду было разрешено компилироваться и запускаться (независимо от того, указано или нет Option Explicit
), заключается в том, что Columns
возвращает объект Range
, но не имеет никаких параметров - аргументы ("C:C")
фактически предоставляются в Range.[_Default]
свойство, которое возвращает Variant
. Поэтому любые вызовы членов, связанные с ним, разрешаются только во время выполнения, т.е. любая опечатка не помешает компиляции и вызовет ошибку 438 во время выполнения.
Объявляя переменную Range
, вы «приводите тип» этого Variant
в Range
, и оттуда компилятор может проверять, какие элементы существуют, и генерировать ошибки времени компиляции, если опечатка приведена.