“格式”不适用于特定的日期格式

时间:2019-01-29 15:21:30

标签: excel vba date datepicker

我可以将日期格式化为特定的日期格式,但是格式化后的字符串似乎无法再格式化了。 不会有问题,因为我可以保存旧格式。但事实是,我还必须从excel单元中读取特定格式的字符串并将其格式化。

我使用德语约会系统。 (Mi =星期三)

UI_Main.txt_BeginnDatum.Value = Format(UI_Date_Picker.Date_Picker.Value, "ddd dd mmm yyyy")

这就是我从日期选择器中获取日期的方法。现在,它已按照我正在谈论的特定日期格式进行格式化(2019年1月9日Mi)。 选择器的默认格式为dd.mm.yyyy。

strBeginDate_g = txt_BeginnDatum.Value

strTemp = strTemp & "Nr. " & Format(strBeginDate_g, "yyyy-mm-dd")

在这里,我尝试用另一种格式写日期,但是输出与以前一样。

我当然可以编写自己的函数,但是我确定应该使用format来处理。

2 个答案:

答案 0 :(得分:1)

Format function只能格式化数字值。但是您给它一个字符串strBeginDate_g作为参数。

取而代之将其值作为参数:

strTemp = strTemp & "Nr. " & Format$(UI_Date_Picker.Date_Picker.Value, "yyyy-mm-dd")

使用Format()格式化日期后,该日期将成为字符串,并且无法再使用字符串进行计算,也无法再次对其进行格式化。

答案 1 :(得分:1)

您可以编写一个自定义格式,像这样

Function FormatYYYYMMDD(strDateIn As String) As Date

Dim a() As String
Dim s As String

a = Split(strDateIn, Chr(32))
a(0) = vbNullString

FormatYYYYMMDD = CDate(Format(a(1) & "/" & a(2) & "/" & a(3), "yyyy-mm-dd"))

Erase a

End Function