我正在尝试使用这样的代码,但它失败了:
data = Range("A1")
MsgBox data.Offset(1,1)
这似乎应该打印单元格B2的值,但它会给我一个错误(Run-time error 424: Object required.
)。
那么表达式Range("A1")
返回什么数据类型,以及如何声明data
具有正确的数据类型来存储它?
答案 0 :(得分:9)
Range
是一个对象
这意味着您需要使用set
来分配对象引用:
Dim data As Range
Set data = Range("A1")
设置关键字:在VBA中,必须使用Set关键字进行区分 在分配对象和分配默认属性之间 对象。
答案 1 :(得分:2)
令人惊讶的是,范围的数据类型为Range
: - )
如果曾收到需要对象的消息,那么您几乎肯定需要使用set
:
set data = Range("a1")
这是大多数人遇到的经典'陷阱'。完整的代码段将是:
Dim data As Range
Set data = Range("a1")