创建用于选择和删除值大于3000的单元格的宏

时间:2015-11-05 12:59:33

标签: excel vba

我有一个英国每个下超级输出区域(LSOA)的数据集及其各自的总人口。此数据集中包含每个地方当局(LAD)的总数,我需要将其过滤掉,只留下每个LSOA及其人口的表格。

由于LSOA在人口中不能超过3000,选择值大于3000的所有细胞并清除它们将是解决方案吗?我想为此创建一个宏,以避免重复该过程。

1 个答案:

答案 0 :(得分:0)

根据您的评论

  

我有3列。区号,区域名称和总人口,每个都有   35,104行。

我假设数据在A,B和A列中。 ç

要在没有代码的情况下执行此操作,您只需按降序对列c进行排序(将所有大数字组合在一起并且是可选的)然后筛选填充列以仅显示大于3000的行,然后您可以只选择所有可见行&安培;点击删除。 - 总共不到20秒。

要使用宏执行此操作,请尝试以下操作:

Sub deleterows()

   Dim rng as range

    With ActiveSheet

        .AutoFilterMode = False

        .Range("A1:C" & .Rows.Count).AutoFilter Field:=3, Criteria1:=">3000"
                With .AutoFilter.Range
                On Error Resume Next
                Set Rng = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
                          .SpecialCells(xlCellTypeVisible)
                   If Not Rng Is Nothing Then Rng.EntireRow.Delete
            End With
        .AutoFilterMode = False
    End With

    End Sub