我正在使用高级过滤器在数据库中的日期之间进行搜索。 我并排放置了我的标准,所以我可以一起搜索一个或多个信息。
以下是示例:
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
无论如何,问题是,当我搜索> 03/03/2017 和< 25/03/2017 之类的内容时,它无效我期待。
我认为这是问题,因为Excel没有正确识别我的日期(我的Excel是葡萄牙语,这里的日期有dd / mm / yyyy格式)。我使用美国日期进行测试,结果非常好。
有没有办法更改高级过滤器的格式日期,以了解我的标准格式是dd / mm / yyyy而不是mm / dd / yyyy?
答案 0 :(得分:3)
我无法对此进行测试,但VBA过滤器中的日期始终以美国为中心。我建议你让用户以你的本地格式输入实际的开始和结束日期(但不是在实际的标准范围内)。在条件范围内,使用以下公式:
=">" & StartDate
="<" & EndDate
StartDate和EndDate指的是用户输入的日期。 您甚至可以将它放在与上面显示的相同的物理位置,但在其他地方具有标准范围。或者你可以让他们在用户表格中输入它。
单元格将显示类似>49076
的内容,其中数字是(通常)1/1/1900
以来的天数。但它应该有用。
如果您让他们在其他地方输入日期,请务必LOCK
和PROTECT
条件单元格,以便用户无法删除或更改公式。