VBA:过滤和删除列中的内容
问题描述:
对不起,这个简单的问题,对VBA来说还很新颖。VBA:过滤和删除列中的内容
我有一个电子表格,列A-Z填充。我想要做的是过滤基于少数员工的C列(包含员工ID),然后只删除Q列中的内容(其中包含员工工作时间),只删除可见内容。为了更清楚起见,我会根据一些标准过滤C列,然后转到Z列。在Z列中,我想根据可见行删除Z列中的内容(而不是整行)。所以基本上过滤后,我想删除列Z中的所有可见内容。电子表格的行数一直在增长,所以我不能使用我现在使用的只是选择特定单元格和删除内容。希望这是有道理的!
答
虽然您可以通过过滤然后清除可见单元来实现此目的,但迭代员工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