首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用VBA将MergeField插入特定的表单元格?

如何使用VBA将MergeField插入特定的表单元格?
EN

Stack Overflow用户
提问于 2014-05-30 08:43:49
回答 1查看 1.7K关注 0票数 4

我在Word 2007工作。我试图将合并字段插入到特定的单元格(即第二行的第一个单元格)中,但没有成功。对于简单的插入mergefield,我没有问题:

代码语言:javascript
复制
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "MERGEFIELD  $!test ", PreserveFormatting:=True

但是当我试图将mergefield插入到单元格中时,它会抛出一个错误:

运行时错误“4605”。该命令不可用。

这就是我尝试过的代码:

代码语言:javascript
复制
    collectTable.Cell(1, 1).Select
    Selection.Fields.Add Selection.Range, Type:=wdFieldEmpty, Text:="MERGEFIELD $!testField", PreserveFormatting:=True

我也试过这个:

代码语言:javascript
复制
collectTable.Cell(1, 1).Select
Selection.Fields.Add collectTable.Cell(1, 1).Range, Type:=wdFieldEmpty, Text:="MERGEFIELD $!testField", PreserveFormatting:=True

但结果是一样的。如何使用VBA脚本在表单元格中插入mergefield?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-31 06:49:21

在我看来,当您在表中选择单元格时,所选内容包括不能用字段替换的结束单元格标记。您需要选择不包括最终标记的单元格范围。

我建议对您的代码进行以下改进:

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23950418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档