我又遇到了一个问题:
我想在 VBA 中将字符串转换为日期。
这些字符串的格式是:YYYY-DD-MM
日期应该是:DD.MM.YYYY
通常情况下我们可以使用 cdate() 方法来完成转换,但是这里不起作用。 我认为这是因为要转换的字符串结构有问题。
感谢您的帮助!
InformatikBabo
我又遇到了一个问题:
我想在 VBA 中将字符串转换为日期。
这些字符串的格式是:YYYY-DD-MM
日期应该是:DD.MM.YYYY
通常情况下我们可以使用 cdate() 方法来完成转换,但是这里不起作用。 我认为这是因为要转换的字符串结构有问题。
感谢您的帮助!
InformatikBabo
Sub Main()
Dim strDate As String
strDate = "2013-06-11"
Debug.Print "Original Date: ", strDate
Debug.Print "CDate() Conversion: ", CDate(strDate)
Debug.Print "Format() as String: ", Format(strDate, "DD.MM.YYYY")
End Sub
而立即窗口显示
试试这个大小。
这将返回一个以不同格式的“date”作为前一天的字符串!!
传递的字符串等于这个格式"08/01/2023"。
Function SdateD(byref Dstring) as String
Dim NewDateD 'undefined
NewDateD = CDate(Dstring) ' This will convert it to #08/01/2023#
NewDateD = NewDateD - 1 ' now it is #07/31/2023#
Dstring = Format(Cstr(NewDateD), "m.d.yy") ' it will return the value 7.31.23
End Function
我从一个 MSWord 文档中提取了一个日期。 08/01/2023
这是文件创建后的日期。
我希望将文件名更改为包含实际日期。 文档名称中不能使用 "/",因为它是目录的分隔符。
所以这个有效:
RenameFile OriginalFN & ".Docx", OriginalFN & SdateD(Dstring) & ".Docx"
CDate()
似乎不能处理像"20200109"
这样的字符串。它可以处理带破折号的字符串"2020-01-09"
,但无法处理没有破折号的字符串。我不得不将该字符串拆分成三个部分,然后重新组合它们并加上破折号,才能使用CDate()
。我现在意识到我可以用Format()
转换该字符串,但更重要的是CDate()
似乎只能处理特定格式的字符串。 - MBB70