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

如何将加粗文本与指定格式日期时间合并到Excel单元格?

问题:合并文本与日期时保留原日期格式

需要将特定加粗文本与另一工作表(Planilha3)中I3单元格的日期时间(格式为dd/mm/yyyy hh:mm AM/PM [BR])合并到指定单元格,现有VBA代码能完成合并,但日期时间格式丢失,需保留原格式。

原代码如下:

Sub Atualizar_Abertura()
Dim LN7A As String, LN7B As String
LN7A = "Próximo comunicado:"
LN7B = Planilha3.Range("I3")
Range("D23").Value = LN7A & " " & LN7B
Range("D23").Font.Bold = False
Range("D23").Characters(Start:=1, Length:=Len(LN7A)).Font.Bold = True
Planilha5.Rows("23").AutoFit
End Sub
解决方案

问题根源在于直接将单元格日期值赋值给字符串变量时,VBA会自动按系统默认日期格式转换,而非保留单元格设置的自定义格式。可以通过两种方法解决:

方法1:使用单元格的Text属性获取带格式文本

直接读取单元格显示的文本内容,而非底层日期值:

Sub Atualizar_Abertura()
Dim LN7A As String, LN7B As String
LN7A = "Próximo comunicado:"
' 改用Text属性获取单元格显示的格式化文本
LN7B = Planilha3.Range("I3").Text
Range("D23").Value = LN7A & " " & LN7B
Range("D23").Font.Bold = False
Range("D23").Characters(Start:=1, Length:=Len(LN7A)).Font.Bold = True
Planilha5.Rows("23").AutoFit
End Sub

方法2:用Format函数手动指定格式

如果需要确保格式不受单元格显示设置影响,可直接通过Format函数强制转换日期值为目标格式:

Sub Atualizar_Abertura()
Dim LN7A As String, LN7B As String
LN7A = "Próximo comunicado:"
' 手动指定目标格式转换日期值
LN7B = Format(Planilha3.Range("I3").Value, "dd/mm/yyyy hh:mm AM/PM [BR]")
Range("D23").Value = LN7A & " " & LN7B
Range("D23").Font.Bold = False
Range("D23").Characters(Start:=1, Length:=Len(LN7A)).Font.Bold = True
Planilha5.Rows("23").AutoFit
End Sub

两种方法都能保留需要的日期时间格式,方法1依赖单元格的显示格式设置,方法2更独立,可根据实际场景选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:10:13