我的 Word 2010 文档中有邮件合并字段,其中包含一个复选框控件,该控件是否被选中取决于输入列表中的内容。
{IF NEW = "NEW" "☒" "☐"} 这些框实际上是复选框控件
但是,邮件合并完成后,复选框控件将根据需要替换为选中或未选中框的符号。因此,在最终文档中不能再从选中状态切换到未选中状态,就像在复选框控件中所做的那样。
这里提出了一个类似的问题,但没有得到解决(一个解决方案的回复对我不起作用)。
我正在寻找一种简单的方法来在输出文档中找到选中或未选中的符号,并将其替换为处于适当状态的复选框文档控件。
我不擅长编程,但如果你能指出我正确的方向,我会尽力而为。我过去曾玩过 VB 宏(非常业余),所以我再次尝试并得到了这个“概念证明”:
Sub Checkbox()
' ChrW(9744) is unchecked box; 9746 is checked box
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(9744)
.Replacement.Text = ChrW(9746)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.HomeKey Unit:=wdStory
End Sub
我还找到了添加复选框控件的方法:
Selection.Range.ContentControls.Add (wdContentControlCheckBox)
但是我还没有想出如何将最后一段代码结合到“替换”行中,也没有弄清楚如何根据搜索将复选框定义为选中或不选中。
谢谢您的帮助。