【问题标题】:Need to apply multiple filter on an excel column via VBScript需要通过 VBScript 在 excel 列上应用多个过滤器
【发布时间】:2015-06-04 12:17:50
【问题描述】:

我需要使用 VBScript(VBS 文件,而不是 VBA)将多个过滤器应用于 excel 列。

我的表格是这样的:

Order    Line Status

Ord1     Awaiting Return
Ord2     Entered
Ord3     Shipped
Ord4     Fulfilled
Ord5     Awaiting return
Ord6     Shipped

我需要在需要显示列的行状态列上应用过滤器

“等待退货”、“已输入”、“已发货”。

我写了以下代码:

Set objSrcExcel = CreateObject("Excel.Application")
objSrcExcel.Visible = False obj
objSrcExcel.DisplayAlerts = False  

Set objSrcWorkbook = objSrcExcel.Workbooks.Open(srcFile)
Set objSrcWorksheet = objSrcWorkbook.Worksheets(srcSheet)

With objXLAppWs
.Range("K1" ).AutoFilter 11,"=Awaiting Return",2 , "=Entered",2 , "=Awaiting Shipping" 
End With

但它会导致错误。

我可以使用上面的代码应用过滤器,有两个过滤器选项,即“等待返回”和“输入”,但是当我尝试选择 3 个值时,它出错了。

//This code works for 2 filter values
     With objXLAppWs
     .Range("K1" ).AutoFilter 11,"=Awaiting Return",2 , "=Entered" 
     End With

我们将不胜感激。

普拉奇

【问题讨论】:

    标签: excel vbscript


    【解决方案1】:

    直接组合只有两个标准。见https://msdn.microsoft.com/en-us/library/office/ff193884.aspx

    您必须使用数组作为Criteria1 和运算符xlFilterValues= 7。

    ...
    .Range("K1").AutoFilter 11, Array("Awaiting Return", "Entered", "Awaiting Shipping"), 7
    ...
    

    【讨论】:

      【解决方案2】:

      你也可以使用

      objSrcExcel.cell(1,no. of columns).autofilter 1(column_num),data_you_need to filter
      objSrcExcel.cell(1,no. of columns).autofilter 2(column_num),data_you_need to filter
      

      等你可以应用多个过滤器

      【讨论】:

        猜你喜欢
        • 2022-11-23
        • 1970-01-01
        • 2016-04-03
        • 2012-09-03
        • 2021-05-13
        • 1970-01-01
        • 1970-01-01
        • 2014-11-09
        • 1970-01-01
        相关资源
        最近更新 更多