使用Excel VBA进行日期格式化而不使用Regex

时间:2013-03-19 12:11:54

标签: excel-vba vba excel

我的目标是将特定格式的日期作为长字符串的一部分。

基本格式:yyyy.mm.dd。

目标格式:yyyy / mm / dd

所以我通过谷歌搜索,到了这个网站并找到了这个答案:

String = Format(Date, "yyyy/mm/dd")

然而,它不起作用。我仍然得到“yyyy.mm.dd”。格式。

我还找到了一个使用正则表达式来切换字符的解决方案(就像在Linux操作系统上使用流编辑器一样),但我希望找到一个不使用任何额外功能的解决方案。

到目前为止,我提出了一个不太优雅的解决方案:

CurYear = Year(Date)
CurMonth = Month(Date)
    If CurMonth < 10 Then
        CurMonth = "0" & CurMonth
    End If
CurDay = Day(Date)
     If CurDay < 10 Then
        CurDay = "0" & CurDay
    End If

Today = CurYear & "/" & CurMonth & "/" & CurDay

2 个答案:

答案 0 :(得分:0)

我知道你只需要替换你'。'用'/'。因此Replace函数最合适:

myString = Replace(Date, ".", "/")
评论后

编辑

如果存在数据字符串的固定长度,则可以按如下方式执行:

myString = Left(Replace(Date, ".", "/"), 10)

结果是最后一个符号被删除。

答案 1 :(得分:0)

强制改变的单元格公式为:

=TEXT(A1,"yyyy/mm/dd")

使用vba:

Sub DateFix()

Dim dtStart As Date
Dim strFinish As String

    dtStart = ActiveCell.Value

    strFinish = Format(dtStart, "yyyy/mm/dd")

    MsgBox strFinish

End Sub