Переменная (пере) присвоение диапазона - PullRequest
0 голосов
/ 16 июня 2019

У меня есть диапазон, который проверяется:

Dim myrange
myrange = Worksheets(1).Range("A1")

Я хочу получить диапазон строк + 1

 myrange = Worksheets(1).Range("A1").Offset(1, 0)

Но

 myrange =myrange.Offset(1, 0)

сгенерировать ошибку 424 объекта требуется


Я также пытался определить мою переменную

 Dim myrange As Range

Но затем при присваивании выдает ошибку объекта 91 или переменная блока не установлена ​​

1 Ответ

4 голосов
/ 16 июня 2019
Dim myrange
myrange = Worksheets(1).Range("A1")

Выше myrange объявлено как вариант, а не диапазон.Когда вы назначаете его Worksheets(1).Range("A1"), вы назначаете значение ячейки, а не устанавливаете объект диапазона.Это исправляется следующим образом.

Dim myrange as range
SET myrange = Worksheets(1).Range("A1")

Вы можете смещать объекты диапазона, но не значения диапазона.Если myrange равно Set, должно работать следующее:

Set myrange = myrange.Offset(1, 0)

myrange теперь установлено на Worksheets(1).Range("A2").Это может быть перепроверено с,

Debug.Print myrange.Address(0, 0, external:=true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...