如何将日期合并为日期格式(18/06/2019)而不是数字(43682)

How to merge date as date format(18/06/2019) and not number(43682)

由于 vba excel 宏,我正在尝试通过邮件合并 .docx。

它非常适用于字符串,但当我想将日期合并为可读日期格式时却不行。

为了修复它,我尝试使用以下行代码,但我始终将日期作为数字:

I got : 43682 and not the excepted result : 18/06/2019

{ MERGEFIELD MyDate \@ "dddd, dd MMMM yyyy" }

{ MERGEFIELD MyDate \@ "d MMMM yyyy" }

{ MERGEFIELD MyDate \@ "d-MMMM-yyyy" }

{ MyDate \@ "d MMMM yyyy" }

{ MERGEFIELD MyDate \@ MM/dd/yyyy}

在我的 excel 文件中,合并的数据被设置为日期格式,我做错了什么吗?

由于您尚未发布 VBA 代码,因此无法确定问题出在哪里。但是,这很可能是因为您的邮件合并正在连接到包含数据的打开工作簿。另一种可能性是您在相关列中有混合数据类型,因此邮件合并将日期视为数字。邮件合并主文档中的字段编码可用于解决此类问题。例如,要将 43682 转换为 18/06/2019,您可以使用编码为的字段:

{QUOTE{SET jd{=2415019+{MERGEFIELD MyDate}}}
{SET e{=INT((4*(jd+32044)+3)/146097)}}
{SET f{=jd+32044-INT(146097*e/4)}}
{SET g{=INT((4*f+3)/1461)}}
{SET h{=f-INT(1461*g/4)}}
{SET i{=INT((5*h+2)/153)}}
{SET dd{=h-INT((153*i+2)/5)+1}}
{SET mm{=i+3-12*INT(i/10)}}
{SET yy{=100*e+g-4800+INT(i/10)}}
"{dd}-{mm}-{yy}" \@ "DD/MM/YYYY"}

注意: 上述示例的字段大括号对(即“{ }”)都是在文档本身中创建的,通过 Ctrl-F9(Cmd-F9 在Mac 或者,如果您使用的是笔记本电脑,则可能需要使用 Ctrl-Fn-F9);您不能简单地键入它们或从该消息中复制并粘贴它们。通过任何标准的 Word 对话框添加它们也不切实际。换行符并不是真正需要的,但它们确实使结构更容易理解。

有关将上述内容转换为工作字段的宏,请参阅 Mailmerge 提示和技巧[=21] 中的 将字段的文本表示形式转换为工作字段 =]线程在: http://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html