excel:更改高级filter中的格式date

我正在使用高级filter在数据库中的date之间进行search。 我把我的标准并排放置,所以我可以一起search一个或多个信息。

这是一个例子:

在这里输入图像说明 这是代码:

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 

无论如何,问题是当我search像“ 03/03/2017”和“ <25/03/2017”这样的东西时,并不像我预期的那样工作。

我觉得这个问题是因为Excel没有正确识别我的date(我的Excel是用葡萄牙语,这里的date是dd / mm / yyyy格式)。 我testing使用美国date,而不是完美的。

有没有办法改变高级filter的格式date,以了解我的标准格式是dd / mm / yyyy而不是mm / dd / yyyy?

我无法testing这个,但VBAfilter中的date一直以美国为中心。 我build议你让你的用户以本地格式input实际的开始和结束date(但不是在实际的标准范围内)。 在标准范围本身,使用这个公式:

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

StartDate和EndDate指的是用户input的date。 你甚至可以把它放在上面显示的同一个物理位置,但是在别处有标准范围。 或者你可以让他们在用户表单上input。

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

如果您让他们在别处inputdate,请​​务必LOCKPROTECT条件单元格,以便用户不能删除或更改公式。