首页 文章

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

提问于
浏览
0

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

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

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

1 回答

  • 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
    

相关问题