Excel 在MsgBox中调用范围方法时出错

Excel 在MsgBox中调用范围方法时出错,excel,vba,methods,Excel,Vba,Methods,这是怎么回事: Sub testsub() myRange = Range("A1:A5").Address MsgBox myRange End Sub 但这抛出运行时“424”对象是必需的吗 Sub testsub() myRange = Range("A1:A5") MsgBox myRange.Address End Sub 对象引用是使用set命令创建的,因此按以下方式更改第二个示例将有效: set myRange = Range("A1:A5") MsgBox myRa

这是怎么回事:

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

MsgBox myRange

End Sub 
但这抛出运行时“424”对象是必需的吗

Sub testsub()
myRange = Range("A1:A5")

MsgBox myRange.Address

End Sub
对象引用是使用
set
命令创建的,因此按以下方式更改第二个示例将有效:

set myRange = Range("A1:A5")
MsgBox myRange.Address
所以你应该问的问题不是为什么它在你的第二个例子中不起作用,而是为什么它在第一个例子中起作用


我相信这是因为你从来没有真正尝试过在那里存储一个对象。相反,您使用的是范围对象来访问
地址
属性,这是一个字符串(VBA基本数据类型之一)而不是对象。

我不明白您为什么需要myRange。MsgBox范围(“A1:A5”)。地址对我来说很好。如果需要保存范围,您可能需要执行以下操作:首先声明变量:
Dim rg As Range
,然后保护范围:
Set rg=Range(“A1”,“A5”)
。然后调用MsgBox:
MsgBox rg.Address