【发布时间】: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 可以澄清你的问题。