excel - 验证用于更新字段“Mailmerge Fillin”的对话框
问题描述
我正在寻找一种方法来验证通过 excel vba 更新 word 文档时弹出的那些对话框。
我使用的字段类型是 MailMerge Fields type "Fillin"
WordObj.ActiveDocument.MailMerge.Fields.AddFillIn
如果可能的话,我也想写在里面。
更新操作
对话框
解决方案
目前还不清楚您要达到的目标。当您使用:
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 & "")
推荐阅读
- xcode - Xcode:Intellisense 窗口太小
- lxml - 使用 lxml.find() 在未知节点中查找属性的第一次出现
- php - 在真正的 vps 服务器上使用 Ratchet websocket
- java - Android 应用程序在 Oppo A5s 设备上运行,但不能在小米设备上运行
- arrays - 从多个部分字符串组合后无法打印整个字符串
- c - C语言中的Luhn算法
- linux - 来自 gitlab 的 Git 克隆在 Linux 上失败,而在 Windows git bash 中工作
- python - 得到 django.db.utils.OperationalError: could not connect to server: Connection denied
- solidity - 我如何链接我的智能合约和我的 UI?在 buidl http://buidl.secondstate.io/ 中测试了我的智能合约。我正在尝试为此使用 Parastate
- python - 如何使用 bs4 和请求在 ::beofre 选择器中抓取元素?