很抱歉这个简单的问题,对VBA来说还是一个新手。
我有一个填充了A-Z列的电子表格。我想要做的是根据少数员工过滤C列(包含员工ID),然后只删除Q列中的内容(包含员工工时),只删除可见内容。
为了更清楚,我将根据某些条件过滤C列,然后转到Z列。在Z列中,我想根据可见行仅删除Z列(不是整行)中的内容。所以基本上在过滤之后我想删除Z列中的所有可见内容。电子表格的行数总是在增长,所以我不能使用我现在正在使用的内容,这是只需选择特定单元格并删除内容。希望这是有道理的!
答案 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