【问题标题】:Excel: Remove Multiple Rows if COLUMN equals VALUEExcel:如果 COLUMN 等于 VALUE,则删除多行
【发布时间】:2011-06-09 14:23:53
【问题描述】:

是否有人知道或可以编写一个宏来检查文档的所有行并删除至少具有以下条件之一的所有行:

  • F 列 = 0
  • 第 N 列 = 0
  • AT 列 = FALSE
  • AU 列 = FALSE
  • AV 列 = 已售出
  • Z 列 = 分阶段

谢谢。

【问题讨论】:

    标签: excel rows


    【解决方案1】:
    Sub RemoveRows()
        Application.ScreenUpdating = False
        Dim r As Long
        For r = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1 To ActiveSheet.UsedRange.Row Step -1
            If Cells(r, 6) = 0 Or Cells(r, 14) = 0 _
                Or Cells(r, 46) = False Or Cells(r, 47) = False _
                    Or Cells(r, 48) = "Sold" Or Cells(r, 26) = "staged" _
                        Then Cells(r, 1).EntireRow.Delete
        Next r
    End Sub
    

    【讨论】:

    • 运行时错误“13”:类型不匹配。调试器说是这一行: For r = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows - 1 To ActiveSheet.UsedRange.Row Step -1
    • 已编辑...应该使用range.rows.count -1。
    • 请注意,这将删除 F、N、AT 或 AU 列中包含空格的行,因为 (blank) 等于 0 并且等于 FALSE。
    • 唯一可以有空格的列是 AV 和 Z。
    • 效果很好。谢谢先生/妈妈!
    【解决方案2】:

    你可以用一张桌子来做(而不是真的需要宏)。选择所有数据,进入插入菜单,然后单击表格(在左侧)。使用列顶部的下拉菜单选择您的数据过滤器。

    【讨论】:

    • 在 Excel 中?插入中没有“表格”? Excel不是已经是表格了吗? :P
    • @Devin 你有哪个版本?从技术上讲,它都是一张桌子,但这会暴露一些功能,比如您所追求的功能。
    • 啊。 2003. 我在数据菜单中找到了表格,但我不知道要为此选择哪些单元格。
    • @Devin 我会选择所有内容,因为它会自动为您删除整行数据(而不仅仅是特定列)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多