我的供应商数据包含有关所有合同(正在进行和已完成)的信息。我需要过滤掉使用组合框选择的供应商的正在进行的合同。
当我在VBA中的autofilter函数中使用多个条件时,没有返回任何行。代码不会给出任何错误。
数据:
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行
答案 0 :(得分:0)
如果您不使用美国区域设置,日期可能会在代码中出现问题。尝试将日期转换为Double:
ActiveSheet.Range("$A$1").AutoFilter Field:=4, Criteria1:=">" & CDbl(Date)