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

我试图使用这样的代码,这是失败的:

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

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

那么expression式Range("A1")返回的数据types是什么,以及如何将data声明为正确的数据types来存储它?

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

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

背景信息 :

设置关键字:在VBA中,必须使用Set关键字来区分对象的赋值和赋值对象的默认属性。

一个范围的数据types,令人惊讶的是, Range 🙂

如果你得到一个消息,需要一个对象,那么你几乎肯定需要使用set

 set data = Range("a1") 

这是大多数人遇到的经典“疑难杂症”。 完整的代码片段将是:

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