excel - 如何将日期字符串与 Excel 中的日期进行转换和比较

标签 excel vba

= "7/29/2011 12:58:00 PM" > NOW()

我希望这个表达式返回 FALSE,但它返回 TRUE。

我知道我可以将我的日期时间分解为日期和时间,并将它们加在一起,如下所示:
= DateValue("7/29/2011") + TimeValue("12:58:00 PM") > NOW()

但是,这对我来说似乎很不雅。我想要一个看起来不错的简单函数或方法,我确信它就在那里,但我就是找不到。

我也知道有一个叫做 CDate 的 VBA 函数。它可以将字符串类型转换为日期时间,这将是完美的。但是,我看不到如何在 excel 单元格中调用 VBA 函数。

最佳答案

将字符串乘以 1,比较函数将起作用:

= 1*"7/29/2011 12:58:00 PM" > NOW()

您的问题的答案与@Jean-François 的评论密切相关:为什么 Excel 将日期解释为文本而不是日期?

一旦你找到它,你就可以进行比较。

如果那是因为字符串被作为文本检索,您可以简单地将其乘以 1,然后比较函数将起作用。但它仅适用于字符串格式在您的区域设置中是有效的日期/时间格式的情况。

关于excel - 如何将日期字符串与 Excel 中的日期进行转换和比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877027/

相关文章:

excel - 我可以在 Excel 中对行组进行排序,以便排序后行仍保持分组状态吗?

excel - 闪烁动画被 DoEvents 中断

excel - 使用 VBA 动态调整 Listobject Table 的大小

excel - Range.Columns 和 Range.EntireColumn 之间有什么区别

excel - 在 JIRA 之外为 JIRA 问题搜索和 Excel 导出

vba - 计算 VBA 中的网络天数差异

单个单元格范围的 Excel 索引 + 匹配失败

arrays - 根据条件将单元格值分配给数组

vba - 如何将行列表与 Excel 中的另一个行列表进行比较?

VBA Excel : FTP GetFile via WinINet