excel:在高级过滤器中更改格式日期

时间:2017-06-06 12:47:41

标签: excel vba excel-vba

我正在使用高级过滤器在数据库中的日期之间进行搜索。 我并排放置了我的标准,所以我可以一起搜索一个或多个信息。

以下是示例:

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

无论如何,问题是,当我搜索> 03/03/2017 < 25/03/2017 之类的内容时,它无效我期待。

我认为这是问题,因为Excel没有正确识别我的日期(我的Excel是葡萄牙语,这里的日期有dd / mm / yyyy格式)。我使用美国日期进行测试,结果非常好。

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

1 个答案:

答案 0 :(得分:3)

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

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

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

单元格将显示类似>49076的内容,其中数字是(通常)1/1/1900以来的天数。但它应该有用。

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