excel:更改高级筛选器中的格式日期

问题描述:

我正在使用高级筛选器在数据库中的日期之间进行搜索。 我把我的标准并排放置,所以我可以一起搜索一个或多个信息。excel:更改高级筛选器中的格式日期

这里是例子:

enter image description here 这是代码:

Sub FiltroAutomatico() 
' 
' FiltroAutomatico Macro 
' 

' 
    Sheets("BASE_TOTAL_ATUAL").Range("A1:J445").AdvancedFilter Action:= _ 
     xlFilterCopy, CriteriaRange:=Range("CONSULTA!Criteria"), 
CopyToRange:=Range _ 
     ("CONSULTA!Extract"), Unique:=False 
    Range("H25").Select 
    ActiveWindow.SmallScroll Down:=-15 
    Range("G3").Select 
End Sub 

无论如何,问题是,当我搜索类似> 2017年3月3日< 2017-03-25它没有按我的预期工作。

我觉得这个问题是因为Excel没有正确识别我的日期(我的Excel是用葡萄牙语,日期是dd/mm/yyyy格式)。我测试使用美国的日期,而且它运作完美。

有什么办法可以改变高级过滤器的格式日期,以了解我的标准格式是dd/mm/yyyy而不是mm/dd/yyyy吗?

我无法测试这个,但VBA过滤器中的日期一直以美国为中心。我建议你让你的用户以本地格式输入实际的开始和结束日期(但不是在实际的标准范围内)。在标准范围本身中,使用以下公式:

=">" & StartDate 
="<" & EndDate 

其中,StartDate和EndDate指的是用户输入的日期。 您甚至可以将它放在与上面显示的相同的物理位置,但在其他位置有标准范围。或者你可以让他们在用户表单上输入。

该单元格将显示类似于>49076的地方,其中数字是从(通常)1/1/1900以来的天数。但它应该工作。

如果您让他们在其他地方输入日期,请​​确保LOCKPROTECT条件单元格,以便用户无法删除或更改公式。

+0

现在它完美的工作!我希望我可以直接在我的标准范围内编写,但似乎这是不可能的......只有当我开始使用美国日期。 – paulinhax

+0

@paulinhax你可以直接写,但是你必须写'''>&DATE(year,month,day)''以提供一个明确的值。 –

+0

我明白了。尽管这不是最好的解决方案,但我猜。你的答案能更好地解决问题。 – paulinhax