玛丽正在写一个将拆分表的宏。在活动表上工作不是什么大问题,但是她想复制活动表的第一行,然后拆分表,最后将复制的行粘贴到由拆分创建的新表的第一行。为了正确执行此操作,她想确定Word用于引用Tables集合中的两个表的索引号。玛丽想知道如何(在拆分之前)发现活动表的索引号,因此她可以简单地增加该数字以了解拆分后创建的表的新索引号。

Word的对象模型依赖于将单个对象组织到可以以编程方式访问的集合中。这不仅适用于表,而且适用于段落,图形和许多其他对象。

您可以使用Count属性轻松地找到集合中的对象数。例如,您可以使用以下内容发现文档中有多少张表,因为它返回Tables集合中的对象数:

iNumTables = ActiveDocument.Tables.Count

查找哪个表是当前表比较棘手,但是可以做到。最简单的方法是将书签添加到当前表,然后检查文档中的所有表以查看哪个表包含该书签。找到该表后,便知道哪个表是当前表,然后可以删除书签。下面的宏实现这些步骤:

Sub FindTableNumber()

Dim J As Integer     Dim iTableNum As Integer     Dim oTbl As Table

Selection.Bookmarks.Add ("TempBM")

For J = 1 To ActiveDocument.Tables.Count         Set oTbl = ActiveDocument.Tables(J)

oTbl.Select         If Selection.Bookmarks.Exists("TempBM") Then             iTableNum = J             Exit For         End If     Next J     ActiveDocument.Bookmarks("TempBM").Select     ActiveDocument.Bookmarks("TempBM").Delete     MsgBox "The current table is table " & iTableNum End Sub

要使用宏,只需确保插入点在所需表内即可。宏可以轻松地适应较大的上下文,例如拆分表或进行其他操作的宏。

但是,还有另一种方法可以以编程方式处理Mary想要实现的基本操作-一种不需要为Tables集合使用索引号的方法。您可以复制表的第一行,然后使用类似于以下命令来拆分表:

Selection.Tables(1).Split(5)

该命令将表拆分到第5行。您可以通过更改拆分点的行轻松更改拆分点。然后,可以使用以下命令将插入点移动到下一个表(新创建的表)的开头:

Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext

该命令跳转到下一个表的开头,然后可以粘贴先前复制的标题行。

如果您对如何以编程方式处理表的更详细的讨论感兴趣,可以在这里找到出色的文章:

http://msdn2.microsoft.com/en-us/library/aa537149(office.11).aspx

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(505)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里: