日期比较不正确
Posted
技术标签:
【中文标题】日期比较不正确【英文标题】:Date comparison is incorrect 【发布时间】:2016-02-29 15:20:03 【问题描述】:这只是我正在编写的 vba 代码的一部分,简单的日期比较不起作用。我有一张包含大量数据的表格,vba 代码创建了一个数据透视表。该代码运行良好并且过滤掉了所有过去的日期,但由于某种原因(今天是 2 月 29 日)它没有过滤掉(2 月 3 日和 2 月 4 日)。它会正确过滤掉所有其他 2 月的日期,但它只是这两个日期。有谁知道出了什么问题?
With ActiveSheet.PivotTables("pivottable1").PivotFields("issuedate")
For Each pi In .PivotItems
If pi < Date Then
pi.Visible = False
End If
Next pi
End With
【问题讨论】:
***.com/help/how-to-ask先按此提问 我曾经遇到过来自 SQL Server 的日期的类似问题。问题是 Excel 不理解来自 SQL Server 的datetime
字段,因为它包含毫秒。所以日期格式是2015-02-04 00:00:00.000
。 Excel 无法理解这一点。但是如果你把它改成2015-02-04 00:00:00
,那么它就可以工作了。会不会是这个问题?
你也可以使用函数DateDiff
。
【参考方案1】:
您是否检查过列类型是日期而不是字符串?也许试试 CDate(pi)?
如果这不起作用,请发布不起作用的日期 - 也许通过执行 Debug.print(pi)。
【讨论】:
Typename(Pi)
必须是date
。另外,不要使用名称混乱的变量,比如 Pi ,应该已经是 3.1415 但奇怪的是不是......以上是关于日期比较不正确的主要内容,如果未能解决你的问题,请参考以下文章