【问题标题】:Excel Marcro - delete a row based on row number [closed]Excel宏 - 根据行号删除一行[关闭]
【发布时间】:2012-12-14 11:41:42
【问题描述】:

请帮助..我需要一个宏来根据行号(行号)删除特定行,例如,如果我想删除第 2、9、20、150 行,如何在宏中完成,请提供一个宏,我可以在其中复制和粘贴代码中的行号并从模块运行。我在 sheet2 A 列中有行号,这些行号是要从 sheet1 中删除的行

【问题讨论】:

标签: excel vba


【解决方案1】:

一行:

Rows(4).Delete Shift:=xlUp

对于多行:

Union(Rows(4), Rows(7)).Delete Shift:=xlUp

对于您的特定情况,允许根据源工作表中的行号列表动态删除行。将 SourceWks 更改为存储数字的工作表和 deletedWks 更改为将要删除行的工作表。

Dim deleteRows As Range
Dim data() As Variant
Dim i As Double

Dim SourceWks As Worksheet, deleteWks As Worksheet

Set SourceWks = Sheet2
Set deleteWks = Sheet1

    With SourceWks
        data = .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown))
    End With

    Set deleteRows = deleteWks.Rows(data(1, 1))

    For i = 2 To UBound(data, 1)

        Set deleteRows = Union(deleteRows, deleteWks.Rows(data(i, 1)))

    Next i

    deleteRows.Delete Shift:=xlUp

【讨论】:

  • 嗨 philip A Barnes,我在 vba 中为零,这很好用,但我有很多特定的行,我该怎么做?请帮忙
  • @davidb:如果您有许多特定行,请使用第二个代码示例,它会删除第 4 行和第 7 行。根据需要扩展和更改它。
  • 我在 sheet2 A 列中有要删除的行号,在代码中一一输入真的很耗时,你能给我一个从 sheet2 读取行号的代码吗?从 sheet1 中删除提到的行??我在 sheet2 A 列中有行号
  • 我已经更新了我的答案以包括您的上述改进。
  • 你很棒。它就像我想要的那样工作。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2017-11-16
  • 1970-01-01
相关资源
最近更新 更多