我的客户输入的日期格式为 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
答案2
右键单击单元格->设置单元格格式->选择类别日期->从本地设置中选择英语(英国)->选择格式 yyyy-mm-dd
如上所述,这不需要改变整个操作系统的本地化设置。
答案3
你所要做的就是将你的地区和语言改为英国,
开始菜单、控制面板、区域和语言、格式为“英语(英国)”,然后将短日期设置为“dd/MM/yyyy”,然后说应用并确定。
下次使用 Excel 时,只需将单元格更改为“日期”,然后单击“数字格式”上的向下箭头格式化单元格,滚动到底部并选择(更多数字格式……)在弹出窗口中找到“日期”选项,然后选择第一个日期选项,它看起来像 (*14/03/2001),更改所有需要日期的单元格,然后……就完成了。