在我的工作中,我需要创建包含许多表的文档。

这些表必须遵循严格的结构,包括所有单元格都不能为空的要求。 (如果单元格否则为空,则必须包含字符“ N / A”。)

为了帮助满足表的这一要求,我创建了一个宏来为我检查表并在适当的地方添加N / A字符。我需要做的就是将插入点放在目标表中,然后运行此宏:

Sub AddTableNA()

Dim NumRows As Integer     Dim NumCols As Integer     Dim J As Integer     Dim K As Integer     Dim ChkTxt As String

If Not Selection.Information(wdWithInTable) Then         Exit Sub     End If

NumRows = Selection.Tables(1).Rows.Count     NumCols = Selection.Tables(1).Columns.Count

'Loop to select each row in the current table     For J = 1 To NumRows         'Loop to select each cell in the current row         For K = 1 To NumCols             'Select the cell to check             Selection.Tables(1).Rows(J).Cells(K).Select             'Copy any text in the cell             ChkTxt = Selection.Text             'Strip off the last 2 characters (removes end of cell marker)

ChkTxt = Left(ChkTxt, Len(ChkTxt) - 2)

'If empty, add "n/a" text             If (ChkTxt = "") Then Selection.TypeText ("N/A")

Next K     Next J End Sub

宏首先检查插入点是否在表中。

如果不是,则宏会提前退出。如果是这样,则将NumRows和NumCols变量分别设置为表中的行数和列数。

宏然后逐步遍历每一行的每个单元格,以确定该单元格是否包含任何内容。由于Word构造表的方式,单元格将始终包含某些内容(单元格结束标记),即使其中没​​有其他内容。解决的办法是从单元格中的文本末尾减去两个字符,然后查看是否剩余任何内容。如果不是,则在单元格中键入字符“ N / A”。

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13265)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。您可以找到此技巧的一个版本Word的旧菜单界面在这里: