【发布时间】:2017-11-24 12:26:27
【问题描述】:
一位同事给了我一个电子表格供我处理,在查看它后,我在一个宏中发现了这个
ActiveWorkbook.Worksheets("Outstanding_Work_DB").ListObjects( _
"BS_Outsanding_Work").Sort.SortFields.Add Key:=Range( _
"BS_Outsanding_Work[[#All],[Date]]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortTextAsNumbers
这是真正的语法吗?我从未在 vba 中看到过类似的东西。
更具体地说,这部分让我感到困惑:
Add Key:=Range( _
"BS_Outsanding_Work[[#All],[Date]]")
电子表格已经完成了他们想要的几乎所有事情,但是这段代码没有运行,它抛出“对象_global的方法范围失败”错误。
简而言之:方括号是真正的语法吗?如果是,他们想做什么?
【问题讨论】:
-
我不确定括号,但也许你可以一步一步调试,看看代码在哪里停止运行......
-
显然这并不完全错误,请参见此处:thespreadsheetguru.com/blog/2014/6/20/… (search for -> Set rng = Range("Table1[#All]").Resize)
-
它似乎正在尝试对名为“BS_Outstanding_Work”的表进行排序,该对象是否存在于您的工作簿中?
-
@ChrisMack 是的。
-
这是一个很长的方法链。要找出损坏的部分,请单独运行每个方法,并分配给一个变量。