VBA Word 复制表
Posted
技术标签:
【中文标题】VBA Word 复制表【英文标题】:VBA Word copy Table 【发布时间】:2011-11-13 05:54:58 【问题描述】:抱歉我的英语不好,这可能是一个简单的问题。 我想将 Table 对象复制到 Dictionary 中,以便稍后将其放置在另一个 Word 文档中。所有作品都在 Excel VBA 中。 我尝试复制表:
Dim dict As Dictionary
Dim table1 As Word.table
Set table1 = Word.Application.ActiveDocument.Tables.Item(tableNum)
dict.Add "SampleText","MyText"
dict.Add "tab1", table1
之后我关闭此文档并打开另一个。在其中,我尝试将数据从字典插入到书签:
dim prilDoc As Word.Document
...
prilDoc.Bookmarks.Item("SampleText").Range.Text=dict.Item("SampleText")
这个(插入文本)工作正常,但我不知道如何将 Table 对象放在书签位置,因为我不知道 VBA Word 对象模型。我尝试了一些方法,但找不到解决方案。我认为有两个问题:
当我将 Table 对象放入 Dictionary 时,实际上我只复制了第一个 Word 文档中对 Table 对象的引用。当我关闭此文档并尝试从 Dictionary 对象中获取它时,对象已被删除,我无法使用它。在 Java 中我可以深度克隆对象,但我不知道如何在 VBA 中进行。可能在这里必须完全使用另一种方法。
我不知道,在新的 Word 文档中插入 Table 对象的正确程度。
提前致谢。
【问题讨论】:
所有文档片段,包括Table
,都链接到源文档,不能深拷贝。
谢谢!然后如何使用 Dictionary 将一个表复制到另一个表?我可以将表格复制到剪贴板并将其内容保存到字典吗?如果是这样,请帮助我如何做到这一点。提前致谢。
您可以将其复制到剪贴板,但也只能通过引用复制。我认为这是不可能的,除非您立即粘贴每个。 (您可以尝试使用剪贴板)
您可能需要将表格中的每个单元格复制到 Dictionary 对象中。或者,更好的是,完全避免使用字典并将表格单元格中的文本放入书签中。
我不能完全理解这个问题,但是如果你想在很多文档中插入同一个表格,你可以使用 Autotext 或 AutoCorretch 可以澄清你的问题。
【参考方案1】:
您是否尝试在打开第一个文档的情况下进行复印?在内容被复制之前不要关闭它。
【讨论】:
以上是关于VBA Word 复制表的主要内容,如果未能解决你的问题,请参考以下文章
在EXCEL中用VBA操作WORD表格:怎样选择一个表格中除第一行以外的任意连续行(比如第2到4行)?