vba - VBA将带有日期和月份名称的字符串转换为日期
问题描述
我有一个string
长date
格式的法语,像这样:
mardi 7 juillet 2020
如何将其转换为 VBA 中的日期类型?我尝试使用CDate
,DateValue
和DateSerial
,但我无法弄清楚。如果 VBA 具有Long Date
日期格式,则必须有一种方法。我只是找不到任何人用这种格式提出这个转换问题。
请注意,我有很多日期,因为我要循环处理许多邮件,所以我需要一个非常通用的解决方案,所以一个解决方案考虑到所有可能的工作日(lundi,mardi,...,dimanche),所有可能的日子1 到 31 和 Janvier 到 12 月和所有可能的年份。
感谢您的帮助。
解决方案
我同意应该有一个更容易的转换。此函数将去掉工作日(这是多余的),然后依靠 VBA 类型转换来获取日期类型(注意。我只在英语(英国)区域设置下测试过这个)。
Option Explicit
Public Function DateFromLongFormat(strLongFormatDate As String) As Date
Dim strDate As String
strDate = Right(strLongFormatDate, Len(strLongFormatDate) - InStr(1, strLongFormatDate, " "))
DateFromLongFormat = strDate
End Function
在今天的日期使用一个简单的测试例程进行了尝试:
Sub TestDate()
Dim strToday As String
strToday = Format(Now(), "dddd dd mmmm yyyy")
Dim dt As Date
dt = DateFromLongFormat(strToday)
End Sub
推荐阅读
- amazon-web-services - 如何在 buildspec 文件中使用 Git 命令?
- python - 两个小部件的相同颜色看起来不同
- bash - 用户创建和保存“别名”命令的最佳方法是什么?
- xml - Perl 调整 xsltMaxDepth (--maxdepth) 错误
- spring - AntMatcher 似乎与请求的路径不匹配(Spring Security)
- mysql - 对大表中的所有记录执行批量更新的最佳方法是什么
- java - 想知道一种在不使用正则表达式的情况下根据作为参数传递的分隔符来拆分字符串的方法
- angular - 如何修复 VS Code 中出现的“未定义标识符‘长度’”错误,但代码按预期工作
- android - 避免使用 Glide 和 Proguard 缩小的虚拟方法 registerAnimationCallback
- aws-lambda - serverless 如何知道在哪里可以找到 serverless.yml?