如何在 Excel 2007 中将 dd.mm.yyyy 日期格式转换为 yyyy-mm-dd?

如何在 Excel 2007 中将 dd.mm.yyyy 日期格式转换为 yyyy-mm-dd?

我的客户输入的日期格式为 dd.mm.yyyy。因为我想将所有数据插入 mysql 数据库,所以我希望日期格式为 yyyy-mm-dd。

我尝试使用 Excel 自定义日期格式和内置函数进行格式化,=text(A1,"yyyy-mm-dd")但没有起作用,我仍然得到相同的格式(它仍然显示 dd.mm.yyyy)。

例如,我在任意单元格中输入 30.10.2010,并尝试将格式更改为 yyyy-mm-dd 即 2010-10-30,但没有效果。

我也在超级用户堆栈和 Google 中查找问题,但找不到解决方案。

在此处输入图片描述

答案1

我尝试过 30/01/2010

SUBSTITUTE(A1,".","/")

然后我把

=TEXT(B1, "yyyy-mm-dd").

结果正如预期。

我怀疑问题在于你执行此操作的单元格不是日期格式。

例如,如果我将值更改为 30.01.2010,那么该值就会重复(以与您描述的相同方式)

或者你可以保留它

=TEXT(A1, "yyyy-mm-dd")

并使用快速宏更新所有 . 为 /

Option Explicit
Sub ReplaceDate()

Dim row As Integer
row = 1

Do While (Range("A" & row).Value <> "")

    Dim val As String
    val = Range("A" & row).Value

    Dim i As Integer

    Dim result As String
    result = ""

    Dim spl() As String
    spl = Split(val, ".")

    If (UBound(spl) > 0) Then


    For i = 0 To Len(val)

    Dim r As String
        result = result & Replace(Mid(val, i + 1, 1), ".", "/")
    Next i

    End If

    If result <> "" Then

        Range("A" & row).NumberFormat = "@"
        Range("A" & row).Value = result

    End If

row = row + 1
Loop

End Sub

如何在 MS Office 中添加 VBA?

答案2

右键单击单元格->设置单元格格式->选择类别日期->从本地设置中选择英语(英国)->选择格式 yyyy-mm-dd

如上所述,这不需要改变整个操作系统的本地化设置。

答案3

你所要做的就是将你的地区和语言改为英国,

开始菜单、控制面板、区域和语言、格式为“英语(英国)”,然后将短日期设置为“dd/MM/yyyy”,然后说应用并确定。

下次使用 Excel 时,只需将单元格更改为“日期”,然后单击“数字格式”上的向下箭头格式化单元格,滚动到底部并选择(更多数字格式……)在弹出窗口中找到“日期”选项,然后选择第一个日期选项,它看起来像 (*14/03/2001),更改所有需要日期的单元格,然后……就完成了。

相关内容