代码之家  ›  专栏  ›  技术社区  ›  daveMac

带excel sort对象的vbscript编译错误预期语句

  •  -1
  • daveMac  · 技术社区  · 7 年前

    当我尝试使用这一行代码(取自Microsoft自己的文档)执行vbscript时,出现以下错误:

    Microsoft VBScript compilation error Expected statement
    IActiveScriptSite::OnScriptError()
    Line:              .SortFields.add Key:=Range("E2:E11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    

    代码如下:

     With xlWorkSheet.Sort 
                .SortFields.Clear 
                .SortFields.Add Key:=Range("E2:E11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
                .SetRange Range("A2:A11")
                .Header = xlYes 
                .MatchCase = False 
                .Orientation = xlTopToBottom 
                .SortMethod = xlPinYin 
                .Apply 
            End With 
    

    取自 Microsofts docs

    在合并了来自rory的建议之后,下面的代码现在抛出一个运行时错误“invalid procedure call or argument”

     With xlWorkSheet.Sort 
            .SortFields.Clear 
            .SortFields.Add xlWorkSheet.Range("E2:E10"), 0, 1, ,0 
            .SetRange xlWorkSheet.Range("A2:A10")
            .Header = 2 
            .MatchCase = False 
            .Orientation = 0 
            .SortMethod = 0 
            .Apply 
        End With 
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Rory    7 年前

    vbscript没有命名参数。必须按位置指定它们并删除命名零件。

    .SortFields.Add xlworksheet.Range("E2:E11"), xlSortOnValues, xlAscending, , xlSortNormal
    

    我想你已经在某个地方声明了常数。否则,请执行此操作,或使用文字值:

    .SortFields.Add xlworksheet.Range("E2:E11"), 0, 1, , 0
    

    注意,你必须为失踪的人留下空隙 DataOption 你没有提供的论点。