迈克尔的桌子很长。该表的一列包含诸如c,b,x等字母的编码字符。他想知道是否有一种方法可以在打印表时仅打印该列中具有特定编码字符的那些行。例如,他可能只想在编码列中打印那些包含代码“ c”的行。

您可以使用几种方法来解决此问题。

也许最简单的方法是将表复制到Excel工作表,然后根据编码列中的字符过滤数据。然后,您可以打印过滤后的工作表,并随心所欲。

当然,有时候用Excel而不是Word来工作是不切实际或不希望的。例如,您可能没有Excel,或者您对格式的需求超出了Excel可以提供的范围。在这种情况下,您可以简单地根据编码列的内容在Word中对表进行排序。然后,选择包含要打印代码的表行(由于对表进行了排序,因此它们应该是连续的)并选择打印。但是,当指定要打印的内容时,仅打印所选内容。

另一种可能的方法是将表用作邮件合并的数据源。在设计邮件合并时,我将不介绍要使用的确切步骤(其他_WordTips_对此进行了介绍),但是您可以指定合并仅在编码列中包含具有所需字符的合并。

最后,如果您需要经常执行选择性打印,则可能需要创建一个宏来处理任务。最简单的方法是让宏创建一个新文档并将所需的行复制到该文档。

Sub CopyTableRows()

Dim SourceDoc As Document     Dim r As Row     Dim iCol As Integer     Dim sPCode As String     Dim sTemp As String

iCol = 3        ' Set the coding column     sPCode = "C"    ' Set code to select (must be uppercase)



ScreenRefresh = False

Set SourceDoc = ActiveDocument      ' Get active document's name     Documents.Add       ' Create a new document

' Find all rows that have correct code in the coding column     For Each r In SourceDoc.Tables(1).Rows         sTemp = UCase(r.Cells(iCol).Range)

sTemp = Left(sTemp, Len(sTemp) - 2)     ' Remove cell overhead                  If sTemp = sPCode Then             r.Range.Copy             Selection.PasteAndFormat wdFormatOriginalFormatting         End If     Next r

ScreenRefresh = True End Sub

为了使用宏,您需要确保将iCol设置为用作编码列的列,并且sPCode包含要选择的代码。 (应该全部为大写。)完成宏后,您将拥有一个仅包含要打印的行的文档,然后可以打印该文档。

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(3511)适用于Microsoft Word 2007、2010、2013和2016。