【问题标题】:Runtime error 424: Object Required运行时错误 424:需要对象
【发布时间】:2013-12-31 00:17:48
【问题描述】:

我在尝试防弹某些东西时犯了一个巨大的错误,不小心保存了工作代码,不知道我做错了什么!

以下是相关代码:

Option Base 1
Dim userRange() as Range
Dim sheetCount as Integer

...(确定用户在此处定义的“sheetCount”的代码)...

ReDim userRange(sheetCount)
Dim r As Integer
For r = 1 To sheetCount
    Sheets(r).Select
    Debug.Print VBA.TypeName(userRange)
    Debug.Print VBA.TypeName(userRange())
    Debug.Print VBA.TypeName(userRange(r))
    Set userRange(r) = Application.InputBox( _
        Prompt:="Select a range to import.", _
        Title:="Select range # " & r, _
        Default:=currentsheet.Range("A1").Address, _
        Type:=8)

引发错误的行是 Set userRange(r)... 为什么 VBA 不能将 userRange(r) 识别为对象?立即窗口打印:

Object()
Object()
Nothing

请帮忙!提前致谢!

JSR

【问题讨论】:

    标签: vba runtime-error


    【解决方案1】:

    问题不在于userRange。您没有名为 currentSheet 的变量。由于您使用了Sheets(r).Select,因此您可能指的是对象ActiveSheet。我建议始终使用Option Explicit

    【讨论】:

    • 确实 有 ActiveSheet,我用一个变量替换了它,以限制循环可以访问(或无论如何尝试)的工作表数量!)。当我决定放弃这个想法时,我错过了变量的一个实例。非常感谢!
    猜你喜欢
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多