Excel VBA中的范围是什么数据类型?
我尝试使用一些类似的代码,但失败了:Excel VBA中的范围是什么数据类型?,excel,vba,Excel,Vba,我尝试使用一些类似的代码,但失败了: data = Range("A1") MsgBox data.Offset(1,1) 这似乎应该打印单元格B2的值,但它却给了我一个错误(运行时错误424:Object required.) 那么表达式Range(“A1”)返回什么样的数据类型,我如何声明数据为正确的数据类型来存储它呢?Range是一个对象。 这意味着您需要使用set来指定对象引用: Dim data As Range Set data = Range("A1") : Set关键字:在V
data = Range("A1")
MsgBox data.Offset(1,1)
这似乎应该打印单元格B2的值,但它却给了我一个错误(运行时错误424:Object required.
)
那么表达式
Range(“A1”)
返回什么样的数据类型,我如何声明数据
为正确的数据类型来存储它呢?Range
是一个对象。这意味着您需要使用
set
来指定对象引用:
Dim data As Range
Set data = Range("A1")
:
Set关键字:在VBA中,Set关键字是区分
在对象赋值和默认属性赋值之间
物体的形状
令人惊讶的是,范围的数据类型是,
range
:-)
如果您收到需要对象的消息,那么您几乎肯定需要使用set
:
set data = Range("a1")
这是大多数人遇到的一个经典的“抓住你了”。完整的代码片段是:
Dim data As Range
Set data = Range("a1")
公平地说,这里有两个运算符:
=
,它将
的默认属性设置为
的值,和Set=
哪个设置
等于
?这是公平的,除了Set
没有设置x
等于y
,因为它创建了对y
的引用。我还应该提到,为了在代码末尾进行清理,您应该设置data=Nothing
以减少引用计数并允许对其进行垃圾收集。是的,这是另一种方式。