从外部源导入数据时,可能会遇到需要从工作表中删除无关数据的问题。例如,您可能需要从数据中删除每第二行或每第五行删除一次。

手工执行此操作可能很乏味并且容易出错。幸运的是,您可以创建一个宏来帮助消除乏味和错误。

下面的宏DeleteRows将删除工作表中的每X行。您所要做的就是选择要应用到的行。

如所写,该宏将每隔第二行删除一次。因此,如果要删除从第10行开始的第一,第三,第五和第七行,则可以选择第10到16行,然后运行此宏。结果是删除了行10(第一行),12(第三行),14(第五行)和16(第七行)。

Sub DeleteRows()

Dim iStart As Integer     Dim iEnd As Integer     Dim iCount As Integer     Dim iStep As Integer     Dim J As Integer

iStep = 2    'Delete every 2nd row     Application.ScreenUpdating = False     iStart = 1     iCount = Selection.Rows.Count     'Find ending row to start deleting     For J = iStart To iCount Step iStep         iEnd = J     Next

Do While iEnd >= iStart         Selection.Rows(iEnd).Delete         iEnd = iEnd — iStep     Loop     Application.ScreenUpdating = True End Sub

如果要删除其他几行,只需更改iStep变量的设置即可。例如,如果要删除每第五行,请将iStep从2更改为5。(只需在iStep = 2声明中进行单个更改。)

注意:

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

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

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