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

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

下面的宏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培训的来源。

本技巧(3592)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: