【发布时间】:2018-10-19 12:10:38
【问题描述】:
我有各种日期(类型字符串),格式为 dd/mm/yyyy hhHmm : dd/mm/yyyy hhHmm 我需要将它们转换为实际类型的日期,格式为 dd/mm/yyyy hh:mm : dd/mm/yyyy hh:mm
我的问题是,当我手动执行替换命令时,一切正常,但如果我在宏中执行替换命令,它突然从 dd/mm/yy hhHmm 变为 mm/dd/yyyy hh:mm,这意味着我的数据全错了。
我用 for 循环 和 split 函数 解决了这个问题,我会把解决方案放在这里,所以也许有同样问题的其他人可以得到它作为感谢每次我在这里得到帮助时,你都感谢:
lastRowRan = Cells(Rows.Count, "B").End(xlUp).Row
For Each cell In Range("I2:I" & lastRowRan)
dateArray = Split(cell)
dateArray(1) = Replace(dateArray(1), "H", ":")
cell.Value = CDate(Format(CDate(dateArray(0) & " " & dateArray(1)), "dd/mm/yyyy hh:mm"))
Next
但显然,由于这些日期有数千个,有时可能需要一点时间。所以我一直在想,有没有更快的方法?
.NumberFormat 似乎不起作用。
【问题讨论】:
-
我想我不明白。当我将日期作为字符串获取时,将“H”替换为“:”格式不会改变。见:imgur.com/j3cdguK
-
看看
DateValue。您可以根据需要格式化日期
标签: excel vba datetime replace format