什么数据类型是Excel VBA中的范围?

时间:2012-03-21 23:17:30

标签: excel vba

我正在尝试使用这样的代码,但它失败了:

data = Range("A1")
MsgBox data.Offset(1,1)

这似乎应该打印单元格B2的值,但它会给我一个错误(Run-time error 424: Object required.)。

那么表达式Range("A1")返回什么数据类型,以及如何声明data具有正确的数据类型来存储它?

2 个答案:

答案 0 :(得分:9)

Range是一个对象 这意味着您需要使用set来分配对象引用:

Dim data As Range
Set data = Range("A1")

Background information

  

设置关键字:在VBA中,必须使用Set关键字进行区分   在分配对象和分配默认属性之间   对象。

答案 1 :(得分:2)

令人惊讶的是,范围的数据类型为Range: - )

如果收到需要对象的消息,那么您几乎肯定需要使用set

set data = Range("a1")

这是大多数人遇到的经典'陷阱'。完整的代码段将是:

Dim data As Range
Set data = Range("a1")