Progress 4GL中Excel Autofilter使用报错及参数语法求助
Progress 4GL中Excel Autofilter启用筛选下拉框的正确方法
问题原因
你遇到的编译错误是因为Progress调用Excel的AutoFilter COM方法时,不能直接无参数调用,必须满足方法的参数个数要求——即使是可选参数,也需要用占位符填充,不能直接跳过。
正确调用方式
Excel的Range.AutoFilter方法共有5个参数,若你只想显示筛选下拉框、不设置任何筛选条件,需要给前四个可选参数传?(表示使用默认值),最后一个VisibleDropDown参数设为TRUE(该参数默认就是TRUE,明确设置更清晰)。
修改后的代码:
vchWorkSheet:Range(XLS_col(1) + STRING(2) + ":" + XLS_col(vi_x) + STRING(2)):AutoFilter(?, ?, ?, ?, TRUE).
参数说明
?:作为占位符,代表使用对应参数的默认值,这里前四个参数分别对应Field(筛选列序号)、Criteria1(筛选条件1)、Operator(筛选操作符)、Criteria2(筛选条件2),用?表示不指定这些筛选规则TRUE:设置VisibleDropDown为真,确保每列显示筛选下拉箭头
错误尝试纠正
- 你之前尝试的
vchWorksheet:Range("A2:BB2"):Autofilter:VisibleDropDown = TRUE错误,因为AutoFilter是方法而非属性,不能直接赋值 Autofilter(,,,,,TRUE)参数个数错误,多了一个逗号,导致参数数量不匹配Excel的AutoFilter方法定义
内容的提问来源于stack exchange,提问作者Szabó László
相关产品推荐
相关产品推荐

