excel - VBA无法转换一般存储的日期
问题描述
我一直在尝试解决这个问题,我什至偶然设法让它工作了一段时间,但是从那以后我就没有运气了。
所以我有一个 excelsheet,其中有一列以这种格式存储日期:“yyyy.mm.dd hh:mm”(例如:2021.01.02 11:40)这些日期以一般单元格格式存储,我会喜欢将它们存储在 Date 变量中,这样我就可以使用 DateDiff 函数来确定从现在到存储的日期已经过去了多少天。我可以将它们存储为字符串,但每当我尝试将其转换为日期时,我都会收到“运行时错误'13':类型不匹配”错误。
我有一个相当长而复杂的代码,所以我不会分享整个事情。我仍然不确定这有什么帮助,但它在braX的解决方案中处于当前状态:
Dim Date1 As String
Dim Date2 As Date
Dim dayD As Long
...
Date1 = ws.Cells(RowLoop, 124).Value
MsgBox Date1
Date2 = CDate(Replace(Date1, ".", "/"))
MsgBox Date2
dayD = DateDiff("D", Date2, Now)
MsgBox dayD
ws 指的是它来自的工作表 RowLoop 是此代码所在的循环
解决方案
由于它们存储为字符串而不是实际日期,因此您需要先将句点转换为斜线,以便将它们转换为实际日期:
Debug.Print CDate(Replace("2021.01.02 11:40", ".", "/"))
不确定您的上下文,因为您在问题中没有提供代码。
Dim dt as Date
dt = CDate(Replace("2021.01.02 11:40", ".", "/"))
MsgBox "The date is: " & Format$(dt,"mm/dd/yy hh:mm:ss")
推荐阅读
- sql - 在 Presto 中提取复杂的嵌套 JSON 数组
- r - 使用日期格式数据重塑表格
- javascript - 如何使用 JavaScript 编写 reducer 来操作这个 JSON
- typescript - How do I use TypeScript compiler in the browser?
- html - How to correctly import an img using HTML?
- java - HashSet 代码的意外运行时间
- regex - RegEx: Rewrite URL with exception
- regex - 将所有 url 重定向到新域,但一些特定的 url
- cakephp - cakephp 在多个模型中重用加密/解密代码
- java - Spring Boot - null value in foreign key PostgreSQL database