转换字符串变量日期(Convert string variable to date)

2019-09-27 02:16发布

我需要一个字符串变量转换为日期变量在VBA宏,处理,以获得mMonth的日期和年份,以命名工作表

Call GetMonthandYear(MonthYear, FileDate)
    ActiveSheet.Name = MonthYear

我希望创建一个名为GetMonthandYear方法。 FILEDATE处于日期格式字符串, dd.MM.yyyy HH-mm-ss 。 如果我能的变量更改日期,我可以改变格式MMMM/yyyy ,然后使用ToString ,我想,并将其分配给MonthYear

有没有办法来改变字符串的日期?

Answer 1:

有几个问题,你提出的aaproach:

  1. 将字符串转换为日期序列是有问题的,有不确定性,如果Excel将其解释日期dd.MMMM.dd 。 既然你预先知道格式,直接提取月份和年份。
  2. \不是表名称的有效字符。 我用_ ,替代品如你所愿

Function GetMonthandYear(FileDate As String) As String
    Dim dot1 As Long, dot2 As Long
    Dim m As String, y As String

    dot1 = InStr(FileDate, ".")
    dot2 = InStr(dot1 + 1, FileDate, ".")
    m = Mid$(FileDate, dot1 + 1, dot2 - dot1 - 1)
    y = Mid$(FileDate, dot2 + 1, InStr(FileDate, " ") - dot2 - 1)

    GetMonthandYear = Format$(DateSerial(y, m, 1), "MMMM_yyyy")
End Function

这样称呼它

Sub Test()
    Dim FileDate As String
    FileDate = "15.04.2012 16-31-18"

    ActiveSheet.Name = GetMonthandYear(FileDate)

End Sub


Answer 2:

您是否尝试过使用CDATE和格式的功能呢?



Answer 3:

您可以使用CDate函数得到的日期,但它要求-要被替换:. 通过替换/

Dim yourStringDate, sBuf As String
Dim yourDateVariable As Date

yourStringDate = "15.04.2012 16-31-18"
sBuf = Replace$(yourStringDate,"-", ":")
sBuf = Replace$(sBuf, ".", "/")
yourDateVariable = CDate(sBuf)

MsgBox yourDateVariable


文章来源: Convert string variable to date