【问题标题】:Workbooks.Open Compile ErrorWorkbooks.Open 编译错误
【发布时间】:2016-06-30 19:47:36
【问题描述】:

我正在尝试在 Microsoft Excel VBA 2010 中使用 Workbooks.Open 方法,但我收到一个编译错误,指出它需要“=”。我打错代码了吗?

Workbooks.Open ( _
    Filename:= FromBook, _
    UpdateLinks:= xlUpdateLinksNever, _
    ReadOnly:= False, _
    Format:= 5, _
    Password:= "", _
    WriteResPassword:= "", _
    IgnoreReadOnlyRecommended:= "", _
    Origin:= "", _
    Delimiter:= "", _
    Editable:= "", _
    Notify:= "", _
    Converter:= "", _
    AddToMru:= "", _
    Local:= "", _
    CorruptLoad:= xlNormalLoad)

【问题讨论】:

    标签: vba excel excel-2010


    【解决方案1】:

    这种方式是期望将值分配给变量 IE:

    Dim myWB as Workbook
    
    Set myWB = Workbooks.Open ( _
        Filename:= FromBook, _
        UpdateLinks:= xlUpdateLinksNever, _
        ReadOnly:= False, _
        Format:= 5, _
        Password:= "", _
        WriteResPassword:= "", _
        IgnoreReadOnlyRecommended:= "", _
        Origin:= "", _
        Delimiter:= "", _
        Editable:= "", _
        Notify:= "", _
        Converter:= "", _
        AddToMru:= "", _
        Local:= "", _
        CorruptLoad:= xlNormalLoad)
    

    如果你真的不需要这种方式,你可以打电话来代替:

    Call Workbooks.Open ( _
            Filename:= FromBook, _
            UpdateLinks:= xlUpdateLinksNever, _
            ReadOnly:= False, _
            Format:= 5, _
            Password:= "", _
            WriteResPassword:= "", _
            IgnoreReadOnlyRecommended:= "", _
            Origin:= "", _
            Delimiter:= "", _
            Editable:= "", _
            Notify:= "", _
            Converter:= "", _
            AddToMru:= "", _
            Local:= "", _
            CorruptLoad:= xlNormalLoad)
    

    【讨论】:

    • Call 是多余的。您可以使用:Workbooks.Open _ Filename:= FromBook, _ UpdateLinks:= xlUpdateLinksNever, _ ReadOnly:= False, _ Format:= 5, _ Password:= "", _ WriteResPassword:= "", _ IgnoreReadOnlyRecommended:= "", _ Origin:= "", _ Delimiter:= "", _ Editable:= "", _ Notify:= "", _ Converter:= "", _ AddToMru:= "", _ Local:= "", _ CorruptLoad:= xlNormalLoad
    • @TroyPilewski 删除 Call 需要删除前导 ( 和尾随 )
    • @ThunderFrame 对不起,我很抱歉。上面的例子有效。如果我删除括号,还有你的 ThunderFrame。
    • 出于标准化目的,我总是使用 call for subs 或类似的东西,所以我知道我只是在做例行公事
    • 另外,当您使用命名参数时,其中许多是默认参数,您可以删除不必要的参数,例如 Password:= ""WritePassword:= ""。它们没有被使用,只会给你的代码添加混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多