如何唯一地标识 Microsoft Word 表格?

如何唯一地标识 Microsoft Word 表格?

我正在使用 Excel 插件将 Excel 表中的数据填充到 Word 文档中。数据进入文档中的不同 Word 表。特定子集数据进入的表由 Excel 表中“目标”列中的值决定。

到目前为止,目标列的值和目标表的顺序之间存在静态关系,例如,带有“A”的所有内容都会进入 Word 文档中的第一个表,带有“B”的所有内容都会进入第二个表,依此类推。

现在,用户在 Word 中发挥创意,重新排列表格、删除表格、添加新表格以进行样式设置等——简而言之,“属于‘A’的所有内容都会进入找到的第一个表格”的关系不再能得到保证。

有没有办法通过 Word 用户界面为 Word 表设置唯一的 ID(我希望用户自己执行此操作,而不必借助任何宏或插件),然后我可以使用该 ID 用作标识符从 Excel 宏中查找最可能的目标表?

答案1

没有桌子Word 中除索引之外还需要唯一的属性(也可能是ID,但仅当文档保存为网页时)。

我建议使用表的Title属性。用户可以使用以下方法设置:

右键单击表格 > 表格属性 > 替代文本 > 标题

您可以通过编程方式访问该属性,如下(VBA 示例):

Word.ActiveDocument.Tables.Item(1).Title

您可以遍历该集合来找到正确的Tables表。Title

答案2

如果它必须一个唯一的名称,无需启用开发人员菜单上通常隐藏的功能即可使用的唯一选项是为每个表分配一个书签。

一致的方法是使用选择框选择表格,然后使用“插入”->“链接”->“书签”指定名称。但问题是,Word 不会在用户重新使用书签时发出警告 - 它只会重新定位书签。因此,如果没有宏等,(a) 用户可以指定任何书签名称,这可能会扰乱文档中的其他内容,例如交叉引用,并且 (b) 如果他们指定了标识另一个表格的书签名称,该表格将丢失其书签 - 用户会注意到吗?一旦书签移动,用户将如何找到未添加书签的表格?

tbl_可以通过使用命名约定(例如“每个表书签名称都以或开头”)来减少或消除扰乱文档中其他内容的问题tab_

相关内容