Как записать в переменную ссылку на ячейку, а не значение VBA?
Подскажите плз
Если я в пишу так
MyP = Range("NameRange")
у меня в переменную MyP попадает текущее значение которое записано в ячейке Range("NameRange")
А мне нужно чтобы в переменную попала ссылка на ячейку и потом я мог уже обратиться к значанию как то так
MyP2 = MyP.Value
Как это сделать?
Ответы (1 шт):
Чтобы обратиться к диапазону, как объекту, нужно применять соответствующий оператор:
Set MyP = Range("NameRange")
Для получения значения диапазона:
MyPVal = Range("NameRange")
или
MyPVal = Range("NameRange").Value
Чтобы неприятные ситуации не портили жизнь, следует соблюдать несколько простых правил.
Обязательно объявлять переменные с указанием их типа -
Dim MyP As Range, MyPVal As LongВ начале модуля, над всеми процедурами, должен быть объявлен оператор
Option Explicit.
Очень полезная штуковина. Помогает обнаружить ошибки в коде, укажет, какие переменные не объявлены, проч. Укажет не сам, а когда пользователь запустит проверку (Debug-Compile VBAProject)
- При получении значения явно на это указывать -
.Value, а не надеяться, что редактор сам все поймет правильно.