【问题标题】:Using multiple criteria on Autofilter在自动过滤器上使用多个条件
【发布时间】:2016-01-22 11:10:37
【问题描述】:

我有供应商数据,其中包含有关所有合同(正在进行和已完成)的信息。我需要过滤掉使用组合框选择的供应商的持续合同。

当我在 VBA 的自动筛选函数中使用多个条件时,没有返回任何行。该代码没有给出任何错误。

数据:

col1,col2,col3,col4,col5;
[1]supplier name,project name,start of contract(date),end of contract(date),total amount
[2]aaa,xx,01/01/2014,31/10/2016,1000000
[3]bbb,yy,01/01/2015,31/10/2016,1000000
[4]ccc,zz,01/01/2013,31/10/2015,1000000
[6]ccc,aa,01/01/2016,31/10/2016,1000000
[7]bbb,bb,01/01/2014,31/10/2014,1000000
[8]aaa,cc,01/01/2015,31/10/2016,1000000

代码:

Private Sub Workbook_Open()
sName = InputBox("supplier name?")

'ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("$A$1").AutoFilter Field:=1, Criteria1:=sName
ActiveSheet.Range("$A$1").AutoFilter Field:=4, Criteria1:= _
    ">" & Date, Operator:=xlAnd
End Sub

当我删除日期条件时代码有效,但同时使用两个条件时不返回任何内容。

对于供应商“aaa”,代码应返回 2 行
对于供应商“bbb”:1 行和
对于供应商“ccc”:1 行

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果您不使用美国区域设置,日期可能会在代码中出现问题。尝试将日期转换为双精度:

    ActiveSheet.Range("$A$1").AutoFilter Field:=4, Criteria1:=">" & CDbl(Date)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      相关资源
      最近更新 更多