【问题标题】:VBA: Filtering and deleting contents in columnVBA:过滤和删除列中的内容
【发布时间】:2016-12-09 12:24:42
【问题描述】:

抱歉这个简单的问题,对 VBA 来说还是很新。

我有一个电子表格,其中填充了 A-Z 列。我要做的是根据几个员工过滤C列(包含员工ID),然后只删除Q列(包含员工工作时间)中的内容,只删除可见的内容。

为了更清楚,我会根据一些条件过滤 C 列,然后转到 Z 列。在 Z 列中,我只想根据可见行删除 Z 列中的内容(而不是整行)。所以基本上在过滤之后我想删除 Z 列中的所有可见内容。电子表格的行数一直在增长,所以我不能使用我现在正在使用的内容,它只是选择特定的单元格并删除内容。希望这是有道理的!

【问题讨论】:

    标签: vba excel filtering


    【解决方案1】:

    虽然您可以通过过滤然后清除可见单元格来完成此操作,但迭代员工 ID 并检查其值更简单一些。即使电子表格中的行数增加,这也将继续有效,前提是 C 列中的值是连续的。

    Sub ClearCells()
         Dim employeeId As Range
         Dim deleteIds As Variant
         deleteIds = Array(14, 35, 17) ' Put your employee ids in here
         For Each employeeId In Range(ActiveSheet.Range("C1"), ActiveSheet.Range("C1").End(xlDown))
            If Not (IsError(Application.Match(employeeId.Value, deleteIds, 0))) Then
                ActiveSheet.Range("Z" & employeeId.Row).Value = ""
            End If
        Next
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2020-03-16
      • 2018-01-29
      • 1970-01-01
      • 2023-02-02
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多