范围变量(重新)分配

时间:2019-06-16 17:57:58

标签: excel vba variables

我有一个检查范围:

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 个答案:

答案 0 :(得分:4)

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

在上面的myrange中,它被声明为变量,而不是范围。为其分配Worksheets(1).Range("A1")时,就是在分配单元格的值,而不是设置范围对象。以下内容对其进行了纠正。

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

可以从范围对象偏移,但不能从范围值偏移。一旦myrangeSet,下面的方法就可以工作。

Set myrange = myrange.Offset(1, 0)

myrange现在设置为Worksheets(1).Range("A2")。可以使用以下方法再次检查

Debug.Print myrange.Address(0, 0, external:=true)