2016-01-22 85 views
1

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

当我在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行,如果你不

回答

0

日期可以在代码问题不使用美国的区域设置。尝试将日期转换为双精度:

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

感谢您的回复!现在它工作正常。 – Niket