我已获得一份作业的某些来源的注册日期列表。 他们希望我使用vba更改日期 问题是:
“与导演给你的上一份作业一样,报名日期是”非正常“格式。导演希望日期改为”正常“丹麦格式”DD-MM-YYYY“。你,因此,必须创建一个子/函数,将字段中的日期更改为“正确”格式。由于函数需要能够运行多次,您应该使用适当的选择语句来检查日期是否在“不”转换之前的正常“格式”。
我附上了excel的图片
答案 0 :(得分:0)
如果只有2个字符,此函数会在年份部分前附加20
。
Function DateConvert(BtVal dt As String) As String
Dim parts As String()
parts = Split(dt, "-")
dd = parts(1)
mm = parts(2)
yy = parts(3)
DateConvert = dd & "-" & mm & "-" & IIf (Len(yy) = 2, "20" & yy, yy)
End Function
您可能希望扩展此逻辑,例如"65"
可以替换为"1965"
而不是"2065"
,但我会将该部分留给您。
答案 1 :(得分:0)
该函数将测试字符串是否与模式匹配。如果是,则返回格式化日期,否则返回相同的单元格值。
Function GetDate(cell)
With CreateObject("VBScript.RegExp")
.Pattern = "^(\d{2})-(\d{2})-(\d{2})$"
With .Execute(cell)
If .Count > 0 Then
With .Item(0)
GetDate = Format(DateSerial(.SubMatches(2), .SubMatches(1), .SubMatches(0)), "dd-MM-yyyy")
End With
Else
GetDate = cell
End If
End With
End With
End Function