【问题标题】:Calling Range method inside MsgBox Error在 MsgBox 错误中调用 Range 方法
【发布时间】:2015-10-23 12:59:41
【问题描述】:

这是怎么回事:

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

MsgBox myRange

End Sub 

但这会抛出 RunTime '424' Object required?

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

MsgBox myRange.Address

End Sub

【问题讨论】:

  • 我不明白您为什么需要 myRange。 MsgBox Range("A1:A5").Address 对我来说很好。
  • 如果您需要保存范围,您可能需要这样做:首先声明变量:Dim rg As Range,然后安全范围:Set rg = Range("A1","A5")。然后调用 MsgBox:MsgBox rg.Address

标签: excel vba methods


【解决方案1】:

Object 引用是使用 set 命令创建的,因此如下更改您的第二个示例将起作用:

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

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

我相信这是因为您实际上从未尝试在其中存储 object。相反,您使用一个范围对象来访问Address 属性,这是一个字符串(VBA 基本数据类型之一)而不是一个对象。

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2019-09-14
    • 2015-11-28
    相关资源
    最近更新 更多