MsgBox错误中调用范围方法

这是如何工作的:

Sub testsub() myRange = Range("A1:A5").Address MsgBox myRange End Sub 

但是这会抛出RunTime'424'对象所需?

 Sub testsub() myRange = Range("A1:A5") MsgBox myRange.Address End Sub 

对象引用是用set命令创build的,所以如下改变你的第二个例子是可行的:

 set myRange = Range("A1:A5") MsgBox myRange.Address 

所以你应该问的问题并不是为什么它在你的第二个例子不起作用,而是为什么它在第一个起作用。

我相信那是因为你实际上从来没有试图在那里存储一个对象 。 而是使用范围对象访问Address属性,这是一个string(VBA基本数据types之一)而不是对象。