VBA:过滤和删除列中的内容

时间:2016-08-03 16:46:42

标签: vba excel-vba filtering excel

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

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

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

1 个答案:

答案 0 :(得分:3)

虽然您可以通过过滤然后清除可见单元格来完成此操作,但迭代员工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