Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company.
Learn more about Allen...
Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Placing Text in Empty Table Cells.
When Liliana has a table in a document, the company requirements state that each cell in the table must have something in it. This means that if a cell is otherwise empty, it must contain either a dash or the letters "N/A." Liliana wonders if there is a way that she can automatically place either a dash or "N/A" into the empty cells of a table.
The only way to do this is with a macro. You can create one that steps through each of the cells in a table and checks to see what it contains. If the cell is empty, then the text you desire is placed in the cell. Here is an example macro that works on all the tables in a document, checking each cell:
Sub ProcCells1() Dim tTable As Table Dim cCell As Cell Dim sTemp As String sTemp = "N/A" For Each tTable In ActiveDocument.Range.Tables For Each cCell In tTable.Range.Cells 'An apparently empty cell contains an end of cell marker If Len(cCell.Range.Text) < 3 Then cCell.Range = sTemp End If Next Next Set oCell = Nothing Set tTable = Nothing End Sub
If you decide that you want your empty cells to contain a dash instead of "N/A", all you need to do is change the text placed in the sTemp variable. If you prefer a macro that works with a single table instead of all the tables in a document, the following variation works great:
Sub ProcCells2() Dim tTable As Table Dim cCell As Cell Dim sTemp As String sTemp = "N/A" If Selection.Information(wdWithInTable) Then Set tTable = Selection.Tables(1) For Each cCell In tTable.Range.Cells 'An apparently empty cell contains an end of cell marker If Len(cCell.Range.Text) < 3 Then cCell.Range = sTemp End If Next End If Set oCell = Nothing Set tTable = Nothing End Sub
In order to use this variation, just make sure the insertion point is within the table you wan to process before you run the macro.
If you prefer to not use macros, then there is a different approach you could consider—simply make sure that your table contains the desired dashes or "N/A" text before you start putting information in it. You could create a table template that contains a dash or "N/A" in every cell, and then as you place other information in the cell you simply delete the default text. (The various ways you can set up table templates is covered in other issues of WordTips.)
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (10772) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Placing Text in Empty Table Cells.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!