使用 Worksheet_Change 自动将日期更改为 YYYYMMDD 格式

Automatically changing dates to YYYYMMDD format with Worksheet_Change

我正在为我所在地区的员工制作一份防错工作表。我们的系统需要通过 excel 工作表进行输入。连同我已经添加的其他验证,我需要将生日日期转换为格式 YYYYMMDD as string/number 因为使用自定义格式将其切换到 Excel 时会在系统上出现错误已上传(我猜它仍然将日期读取为 DD/MM/YYYY)。

所以我尝试使用 Worksheet_Change() 所以当用户输入任何日期 DD/MM/YYYY 它会自动转换为所需的结果。

If Not Intersect(Target, Columns("G")) Is Nothing Then

    On Error Resume Next

    fecnacadd = Target.Address
    fecnac = Target.Value

    fecnacadd = Format(fecnac, "yyyymmdd")

    Columns("G").NumberFormat = "General"

End If

此代码在调试时运行异常(正确显示 'YYYYMMDD')但 运行 它按原样获取宏循环 (?) 10 秒,然后删除细胞.

感谢我的代码中的任何提示。

已解决,它是日期格式证明(与 DD 或 MM 的顺序无关)。还在评论中添加了建议。谢谢!

If Not Intersect(Target, Columns("G")) Is Nothing Then
    Application.EnableEvents = False
    On Error Resume Next

    fecnacadd = Target.Address
    fecnac = Format(Target.Value, "YYYYMMDD")

    Target.Value = fecnac

    Columns("G").NumberFormat = "General"

    Application.EnableEvents = True
End If