在编辑工作表时,您可能会注意到某些工作是基于之前完成的工作完成的。例如,您可能有在上一个Excel会话中输入的数据行。在此会话中,您需要复制该行数据并将其用作新数据的基础,但要进行一些更改。

在这种情况下,最好有一种快速的方法来在当前行之后输入空白行,并将当前行中的数据复制到新的空白行。 Excel中没有内部命令可以执行此操作,但是宏可以非常方便地执行此操作。请考虑以下示例:

Sub InsertCopyRow1()

ActiveCell.EntireRow.Select     Selection.Copy     Selection.Insert Shift:=xlDown End Sub

为了使用宏,您需要做的就是在任意行中选择一个单元格。运行宏时,当前行的副本将插入到您所在行的正下方。

这种解决方案的唯一问题是,它使Excel界面有点“混乱”(因为缺少更好的词)。完成后,仍然选择完整的行,并且新行具有“行进蚂蚁”

围着它走。

通过包括折叠选择并将其移动到所需位置的命令,可以克服此问题。另一种方法是简单地使用依赖于不同VBA命令的不同宏。以下宏也将插入并复制一行,但它会使您选择的单元格保持活动状态:

Sub InsertCopyRow2()

ActiveCell.Offset(1, 0).EntireRow.Insert     ActiveCell.EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow End Sub

注意:

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

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2042)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本:

链接:/ excelribbon-Inserting_and_Copying_Rows [插入和复制行]。