首页 > 解决方案 > 验证用于更新字段“Mailmerge Fillin”的对话框

问题描述

我正在寻找一种方法来验证通过 excel vba 更新 word 文档时弹出的那些对话框。

我使用的字段类型是 MailMerge Fields type "Fillin"

WordObj.ActiveDocument.MailMerge.Fields.AddFillIn

如果可能的话,我也想写在里面。

更新操作

在此处输入图像描述

对话框

在此处输入图像描述

标签: excelvbams-wordmailmerge

解决方案


目前还不清楚您要达到的目标。当您使用:

ActiveDocument.MailMerge.Fields.AddFillIn

结果字段不会显示在文档中,直到进行某些操作以使其更新(例如执行邮件合并)。如果要显示该字段,请使用以下内容:

Dim wdFld As Object
With WordObj.ActiveDocument
  Set wdFld = .Fields.Add(.Range.Characters.Last, -1, "QUOTE ""Default Text""", False)
  wdFld.Code.Text = "FILLIN ""Some prompt"" \d ""Default Text"" \o"
End With

除此之外,您确实需要解释使用 FILLIN 字段的方式和原因,并在执行邮件合并时发布更新它的代码。毕竟,使用 FILLIN 字段通常意味着用户应该进行输入并按下 OK/Cancel 按钮。

要允许指定不同的范围、提示和默认值,您可以使用如下内容:

Sub FILLIN(StrBkMk As String, StrPrmpt As String, StrDflt As String)
Dim wdFld As Object
Dim quote As String

quote = char(34)

With WordObj.ActiveDocument
  Set wdFld = .Fields.Add(.Bookmarks(StrBkMk).Range, -1, "QUOTE " & quote & StrDflt & quote, False)
  wdFld.Code.Text = "FILLIN " & StrPrmpt & " \d " & StrDflt & " \o  \* MERGEFORMAT "
End With
End Sub

其中 'StrBkMk' 是您要放置该字段的书签的名称。然后,您可以使用以下代码调用上述代码:

Call FILLIN("FILLIN1", nom_signet, nouveau_texte_signet)

或者,如果您要传递多字字符串:

Call FILLIN("FILLIN1", "" & nom_signet & "", "" & nouveau_texte_signet & "")

推荐阅读