我在Excel中有以下日期:
> 20. Mrz 06
> 20. Mrz 07
> 20. Mrz 08
> 20. Mrz 09
> 20. Mrz 10
> 20. Mrz 11
> 20. Mrz 12
> 20. Mrz 13
> 20. Mrz 14
> 21. Mrz 06
> 21. Mrz 07
> 21. Mrz 08
> 21. Mrz 09
> 21. Mrz 10
> 21. Mrz 11
> 21. Mrz 12
> 21. Mrz 13
> 21. Mrz 14
> ...
and would like to convert it into the following:
> 20-03-06
> 20-03-07
> 20-03-08
> 20-03-09
> 20-03-10
> 20-03-11
> 20-03-12
> 20-03-13
> 20-03-14
> 20-03-15 不巧的是,它不只是通过excel数字格式转换日期。在VBA里有办法吗?
发布于 2017-09-25 14:59:33
由于您有字符串,而不是日期,而且字符串不遵循任何标准(包含月份名称,可能是德语),您可以尝试UDF:
Function StrtoDate(s As String) As Date
Dim MonthNames
MonthNames = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
Dim parts() As String
parts = Split(s, " ")
If UBound(parts) <> 2 Then Exit Function
Dim d As Integer, m As Integer, y As Integer
d = Val(parts(0))
m = Application.Match(parts(1), MonthNames, False)
y = Val(parts(2))
If y < 100 Then y = y + 2000
StrtoDate = DateSerial(y, m, d)
End Functionhttps://stackoverflow.com/questions/46407433
复制相似问题