Excel/VBA中将星期月日年格式转为dd/mm/yy格式的简便方法
嗨,我来给你分享三种最简的转换方法,不管是用Excel自带功能、公式还是VBA都能快速搞定~
方法一:直接设置单元格格式(最快上手)
这种方法适合单元格内容已经是Excel可识别的日期格式(只是显示样式不对):
- 选中需要转换的单元格区域
- 右键点击选择「设置单元格格式」,或者直接按快捷键
Ctrl+1打开格式窗口 - 切换到「数字」选项卡,选择「自定义」分类
- 在「类型」输入框里填写
dd/mm/yy,点击确定就完成了!
小提示:如果单元格左上角有绿色小三角,说明内容是纯文本格式,这种情况得先转成日期格式再用这个方法哦。
方法二:用公式转换文本格式日期
如果你的日期是纯文本(比如复制粘贴过来的非标准格式),可以用公式一键转换:
假设目标日期在A1单元格,在空白单元格输入:=TEXT(DATEVALUE(A1),"dd/mm/yy")
- 原理:
DATEVALUE函数会把文本格式的日期转换成Excel内部的日期序列号,TEXT函数再把它格式化成你需要的dd/mm/yy样式。 - 要是需要批量转换,直接下拉公式就行。
方法三:VBA批量处理(适合大量数据)
如果要处理成百上千行的数据,写个简单的VBA宏能节省不少时间:
- 按
Alt+F11打开VBA编辑器 - 右键点击左侧的工作簿名称,选择「插入」→「模块」
- 粘贴下面的代码:
Sub ConvertToDDMMYY() Dim targetRange As Range Dim cell As Range ' 这里可以直接指定范围,比如 Set targetRange = Range("A1:A1000") Set targetRange = Application.Selection For Each cell In targetRange ' 先判断是否是可识别的日期,文本格式的话先转换 If IsDate(cell.Value) Then cell.NumberFormat = "dd/mm/yy" Else On Error Resume Next ' 跳过无法转换的无效日期 cell.Value = DateValue(cell.Value) cell.NumberFormat = "dd/mm/yy" On Error GoTo 0 End If Next cell End Sub
- 回到Excel,选中要处理的单元格区域,按
Alt+F8选择ConvertToDDMMYY宏运行即可。
内容的提问来源于stack exchange,提问作者WayneP




