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行)?

vba怎么复制指定内容到指定工作表?

Excel,VBA求教表格和TXT文本互转。

VBA 复制工作表至新的工作簿中的工作表

利用vba怎样编写将工作表中第三行到最后一行(不确定)的数据复制并插入到另一个工作表的第二行前?

VBA批量提取word表格中的自我评分