如何使用VBA将包含内容文本的自动文本插入MS Word文档?

时间:2019-12-15 17:27:53

标签: vba ms-word word-vba

我有一个自动文本条目,其中包含2个plain text内容控制元素。当我手动将其插入时,它可以正常工作且内容控件完好无损。 赞!

Autotext working as intended

但是当我尝试使用VBA将其插入时,代码如下:

NonclientRange.Text = NormalTemplate.AutoTextEntries(2)

内容控件丢失了,我只得到这样的普通文本:

autotext not working

如果有一种手动插入的方法,那么肯定也有一种通过代码插入的方法吗?

1 个答案:

答案 0 :(得分:2)

如果您将AutoTextEntryBuildingBlock分配给范围的Text属性,您将得到的只是条目的未格式化文本。

您的代码还依赖于AutoTextEntry的默认属性,即它的值。由于Value是一个字符串,您将得到的只是条目的未格式化文本。您还应该注意,由于Word 2007自动图文集已被Building Blocks取代。

每当您不确定如何在Word中执行某些操作时,请先尝试记录宏。生成的代码不是理想的,但是它应该使您了解要使用的对象。下一步应该是在对象浏览器和在线Word VBA参考中查找对象。在这种情况下,您应该查找BuildingBlock.Insert method的引用。

您用于插入条目的代码将类似于:

NormalTemplate.BuildingBlockEntries(BuildingBlockName).Insert Where:=NonclientRange, RichText:=True