当您在Word中使用表时,您可能需要用设置值填充表中的各个单元格。例如,您可能想将某些内容复制到剪贴板,然后将剪贴板的内容粘贴到表中的每个单元格中。以下宏可以解决问题:

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

宏首先检查以确保所选内容包括一些单元格。如果不是,则通知用户,并且宏结束。

然后,将选择存储在变量中,以便可以(再次)在宏末尾选择它。没有此代码,宏将在原始选择的第一个单元格中使插入点折叠。

宏的真实内容在For …​ Next循环中。它逐步遍历选择中的单元格,并用剪贴板的内容替换其中的任何内容。最后,再次选择原始选择,宏结束。

您可能已经注意到,宏中也有一个On Error语句。该语句基本上告诉Word忽略任何错误并继续下一条语句。可能触发的错误包括在剪贴板中什么都没有运行宏或试图将表粘贴到表单元格中。 Word不会执行任何一项任务,但是它将继续尝试,直到对所选内容中的所有单元格都完成为止。

您应注意,此宏将剪贴板中的内容替换为所选单元格中的所有内容。以前在牢房中的所有东西都会丢失。如果您想在单元格的开头添加信息,而又不影响单元格的现有内容,则可以使用此经过稍微修改的宏:

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

最后一种修改是提出一个宏,该宏将粘贴到单元格中的末尾。您可能会认为您可以将上述宏中的wdCollapseStart替换为wdCollapseEnd,但是在表中无法正常工作。相反,您必须替换上面宏中的For …​ Next循环。下面的示例显示宏的更改的版本。

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

注意:

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

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

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13157)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: