我在Word 2007中工作。我试图将合并域插入特定单元格(即第二行的第一个单元格),但没有成功。通过简单的插入合并域,我没有问题:
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"MERGEFIELD $!test ", PreserveFormatting:=True
但是当我尝试将mergefield插入到单元格中时会抛出错误:
运行时错误'4605'。该命令不可用。
这是我尝试过的代码:
collectTable.Cell(1, 1).Select
Selection.Fields.Add Selection.Range, Type:=wdFieldEmpty, Text:="MERGEFIELD $!testField", PreserveFormatting:=True
我也试过这个:
collectTable.Cell(1, 1).Select
Selection.Fields.Add collectTable.Cell(1, 1).Range, Type:=wdFieldEmpty, Text:="MERGEFIELD $!testField", PreserveFormatting:=True
但结果是一样的。如何使用VBA脚本在表格单元格中插入合并域?
答案 0 :(得分:3)
在我看来,当你在表格中选择单元格时,选择包括无法用字段替换的终止单元格标记。您需要选择不包含最终标记的单元格区域。
我建议您对代码进行以下改进:
Dim collectTable As Table
Set collectTable = ActiveDocument.Tables(1)
'selecting cell range without cell-end mark
ActiveDocument.Range(collectTable.Cell(1, 1).Range.Start, _
collectTable.Cell(1, 1).Range.End - 1).Select
Selection.Fields.Add Selection.Range, _
Type:=wdFieldEmpty, _
Text:="MERGEFIELD $!testField", _
PreserveFormatting:=True