Word 2010 VBA:将文本添加到模板而不删除下面的所有内容

时间:2016-08-23 13:26:13

标签: vba word-vba

我一直在编写代码来构建每周报告的自定义文档。我已经设置了创建一个新文档,构建表格,格式化所有内容,插入徽标等等,每当我尝试通过VBA调整徽标大小时,Word就会崩溃。然后我发现我无论如何都是以错误的方式执行此操作,并且我应该构建一个模板,让代码打开该模板,然后将更改直接插入到该文档中。

当我将文字添加到我需要的范围时,下面的所有内容都会被删除。我有三行标题;第三行是可变的,每周都会改变。下面我有三个表,其中一些单元格将每周更新。现在我只是被困在文件的第三行。

以下是我所拥有的一个例子。这是非常短暂的,因为我重新开始并立即走向死胡同。

Dim Template as Document
Set Template = ThisDocument
Dim InsertSpot as Range
Set InsertSpot = Template.Range(46)

InsertSpot.Text = "Hello"

当我运行时,所有内容都会在“Hello”下面删除。

我尝试了一些不同的东西,例如:

Set InsertSpot = Template.Range(46,50)

InsertSpot.InsertAfter "Hello"

这不起作用;它只是将“Hello”添加到第一个表的第一个单元格中。

我觉得被困在这么基本的部分很傻,但老实说,我不知道该怎么做。我在网上看到的所有内容都谈到了如何在书签中插入文字而不删除书签。我只想输入文字,期间。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我找到了答案。我做了以下事情:

Dim Template as Document
Set Template = ThisDocument
Dim InsertSpot as Range
Set InsertSpot = Template.Range(46, 46)

InsertSpot.Text = "Hello"

我必须列出开始和结束字符,以便插入的文本不会渗透到页面的其余部分。希望我能帮助遇到类似问题的其他人。不幸的是,Word VBA缺乏支持和明确的解释。

答案 1 :(得分:0)

其他替代方案可以

ThisDocument.Range(46).InsertBefore "Hello"

ThisDocument.Tables(1).Range.InsertBefore "Hello"

ThisDocument.Paragraphs(3).Range.InsertAfter "Hello"