输入日期的VBA解释

标签 vba excel date datetime

我遇到了令人烦恼的日期格式与 Excel VBA 不一致的问题。我有一个源文本文件,其日期格式为 dd/mm/yyyy(即 sane 格式)。但我需要将其转换为yyyy/mm/dd(为了保持一致性,我还在我的计算机中将此格式设置为默认格式)。

当我将此文本文件导出到数据库时,如果 ddmm 值都小于 12,VBA 会将它们视为 mm/dd/yyyy 而不是 dd/mm/yyyy。即使我对这种非标准日期格式也很困惑,糟糕的VBA。

例如,我的文本文件中有 06/08/2015,即 8 月 6 日,但是 CDate("06/08/2015") 返回 2015/06/08,即 6 月 8 日。但如果文本文件有 15/08/2015,VBA 可以将其识别为 2015/08/15

如何告诉 VBA 06/08/2015 采用 dd/mm/yyyy 格式?

任何有关这项烦人而乏味的任务的帮助将不胜感激!

最佳答案

使用 DateSerial() 而不是 CDate():

    Dim d$
    d = "06/08/2015"
    MsgBox DateSerial(Right$(d, 4), Mid$(d, 4, 2), Left$(d, 2))

这样您就可以控制日期的哪些位。

关于输入日期的VBA解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849959/

相关文章:

javascript - 日期分页 Bootstrap

json - 如何使用 VBA 从 url 导入 json 数据?

vba - 多个if语句条件vba

c# - 在 C# 中将 Excel 所有列读取为字符串

excel - 查找特定列中最后使用的单元格以及范围周围的边框

java - 如何在Java中将日期格式化为带有缩写时区的格式?

java - 如何在 Joda-Time 中正确获取当前日期和时间?

vba - 将 Excel 电子表格合并到一个电子表格中

excel - 通过 Excel 的 eDrawings API

database - 如何使用代码在VB中搜索一个access数据库的多个字段