Excel 2010删除每57行(以及4行)

时间:2012-03-13 17:14:10

标签: excel excel-vba vba

我需要一个宏代码来删除第57行之后的每第58行和4行。 我需要删除行号58,59,60,61和62nd(总共5个)。

我需要在整张纸上重复这种模式。因此,在宏删除58,59,60,61和第62行后,它需要删除115,116,117,118和第119行(它们之间的差值为57-57 = 58)。

我尝试在互联网上查找,但找不到符合我需求的文章。任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:4)

对于非代码方法,您可以在数据旁边选择一个空白列,然后尝试以下步骤:

  • 选择范围,例如A57:A60并使用ctrl + enter输入X以填充单元格
  • 选择重复范围,例如A1:A60,并填充到数据的末尾(或使用复制/粘贴)
  • 按Ctrl + Shift + \选择所有X(转到特殊...列差异或使用自动过滤器)
  • 选择删除> “主页”选项卡的“单元格”部分中的“工作表”行

你已经完成了。这也保留了撤销堆栈,因此您可以根据需要进行回溯。

答案 1 :(得分:2)

下次发帖时,如果至少你尝试了一些东西,你会得到更好的关注和反馈。好的第一步是在Excel中运行宏录制器,删除几行并检查已生成的代码。从那里,最终的解决方案并不是很远。

Sub deleteRows()

    Dim i As Long
    Dim maxRow As Long

    maxRow = ActiveSheet.UsedRange.Rows.Count

    For i = 58 To maxRow Step 52 'Step 52, not 57, because we delete 5 rows each time
        Range(Rows(i), Rows(i + 4)).Delete Shift:=xlUp
    Next i

End Sub