我有一个检查范围:
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对象变量或未设置块变量
答案 0 :(得分:4)
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)