Welcome toWord.Tips.Net
Ask a Word Question
Make a Comment
Learn Access Now
Free Printable Forms
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips
Setting Fraction Bar Overhang Spacing in the Equation Editor
Printing On Both Sides of the Paper
Turning Off AutoComplete for Dates
Understanding Auto Line Spacing
Adding Comments to Your Document
Conditional Calculations in Word
As you are working with tables in Word, you may want to fill the various cells in a table with a set value. For instance, you might want to copy something to the Clipboard, and then paste the contents of the Clipboard to each cell in a table. The following macro will do the trick:
Sub PasteToCells()
Dim TargetRange As Range
Dim oTargCell As Cell
If Selection.Cells.Count = 0 Then
'Quit if no cells in selection
MsgBox "No cells selected", vbCritical
Exit Sub
End If
On Error Resume Next
Set TargetRange = Selection.Range
For Each oTargCell In Selection.Cells
oTargCell.Range.Paste
Next oTargCell
TargetRange.Select
End Sub
The macro starts by checking to make sure that the selection includes some cells. If not, then the user is informed and the macro is ended. Then the selection is stored in a variable so that it can be selected (again) at the end of the macro. Without this code, the macro would leave the insertion point collapsed in the first cell of the original selection.
The real meat of the macro is in the For ... Next loop. It steps through the cells in the selection and replaces whatever is there with the contents of the Clipboard. Finally, the original selection is again selected, and the macro ends.
You probably noticed that there is an On Error statement in the macro, as well. This statement basically tells Word to ignore any errors and continue with the next statement. Errors that could be triggered include running the macro with nothing in the Clipboard or trying to paste a table within a table cell. Word won't do either task, but it will continue trying until it is done with all the cells in the selection.
You should note that this macro replaces whatever is in the selected cells with the contents of the Clipboard; whatever was previously in the cells is lost. If you want to instead add information to the beginning of the cells, without disturbing the existing contents of the cell, you could use this slightly modified macro:
Sub PasteToCellsStart()
Dim TargetRange As Range
Dim oTargCell As Cell
Dim PasteRange As Range
If Selection.Cells.Count = 0 Then
'Quit if no cells in selection
MsgBox "No cells selected", vbCritical
Exit Sub
End If
On Error Resume Next
Set TargetRange = Selection.Range
For Each oTargCell In Selection.Cells
Set PasteRange = oTargCell.Range
PasteRange.Collapse wdCollapseStart
PasteRange.Paste
Next oTargCell
TargetRange.Select
End Sub
One last modification would be to come up with a macro that would paste to the end of what is in the cells. You might think that you could replace wdCollapseStart with wdCollapseEnd in the foregoing macro, but that doesn't work properly within tables. Instead, you must replace the For ... Next loop in the above macro. The following example shows a changed version of the macro.
Sub PasteToCellsEnd()
Dim TargetRange As Range
Dim oTargCell As Cell
Dim PasteRange As Range
If Selection.Cells.Count = 0 Then
'Quit if no cells in selection
MsgBox "No cells selected", vbCritical
Exit Sub
End If
On Error Resume Next
Set TargetRange = Selection.Range
For Each oTargCell In Selection.Cells
Set PasteRange = oTargCell.Range.Characters.Last
PasteRange.Collapse wdCollapseStart
PasteRange.Paste
Next oTargCell
TargetRange.Select
End Sub
Tip #1508 applies to Microsoft Word versions: 97 2000 2002 2003 2007
Great Idea! Word is a tool to get what you really want—printed output. This means you need to make sure that Word works as well as possible with your printer, whether it is sitting on your desk or in a room down the hall.