You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Word VBA将mm/dd/yyyy日期转为dd.mm.yyyy并添加下划线

用Word VBA转换日期格式并添加下划线

刚好碰到过类似的需求,给你整理了一段实用的VBA代码,能完美帮你把mm/dd/yyyy格式的日期转换成dd.mm.yyyy,还自动给转换后的日期加上下划线:

完整VBA代码

Sub ConvertDateFormatAndAddUnderline()
    Dim findRange As Range
    ' 这里默认处理整个文档,想只处理选中内容就改成 Set findRange = Selection.Range
    Set findRange = ActiveDocument.Content
    
    ' 配置查找规则:匹配mm/dd/yyyy格式的日期
    With findRange.Find
        .ClearFormatting
        .Text = "([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})"
        .MatchWildcards = True
        .Forward = True
        .Wrap = wdFindStop
    End With
    
    ' 循环查找并处理每个匹配到的日期
    Do While findRange.Find.Execute
        ' 拆分日期的月、日、年部分
        Dim monthPart As String, dayPart As String, yearPart As String
        monthPart = Mid(findRange.Text, 1, InStr(findRange.Text, "/") - 1)
        dayPart = Mid(findRange.Text, InStr(findRange.Text, "/") + 1, InStrRev(findRange.Text, "/") - InStr(findRange.Text, "/") - 1)
        yearPart = Right(findRange.Text, 4)
        
        ' 重新拼接成dd.mm.yyyy格式
        findRange.Text = dayPart & "." & monthPart & "." & yearPart
        
        ' 给日期添加单下划线
        findRange.Font.Underline = wdUnderlineSingle
        
        ' 移动查找范围,避免重复处理同一个日期
        findRange.Collapse wdCollapseEnd
    Loop
End Sub

代码说明

  • 查找范围:默认处理整个文档,如果你只想转换选中的日期,把Set findRange = ActiveDocument.Content改成Set findRange = Selection.Range就行
  • 日期匹配:用Word的通配符规则([0-9]{1,2})/([0-9]{1,2})/([0-9]{4}),能精准匹配1-2位的月、日,以及4位的年,不管是2/12/2018还是02/12/2018都能识别
  • 格式转换:拆分原日期的各个部分后,按日.月.年的顺序重新拼接
  • 下划线设置:直接给匹配到的文本范围设置单下划线格式,不用手动调整

注意事项

  • 运行代码前建议先保存文档,防止意外情况导致内容丢失
  • 如果文档里有其他类似xx/xx/xxxx格式的非日期文本(比如编号),可能会被误处理,这种情况可以先选中需要转换的日期范围再运行代码

内容的提问来源于stack exchange,提问作者rakesh seebaruth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:27:20