2016-08-03 31 views
0

對不起,這個簡單的問題,對VBA來說還很新穎。VBA:過濾和刪除列中的內容

我有一個電子表格,列A-Z填充。我想要做的是過濾基於少數員工的C列(包含員工ID),然後只刪除Q列中的內容(其中包含員工工作時間),只刪除可見內容。爲了更清楚起見,我會根據一些標準過濾C列,然後轉到Z列。在Z列中,我想根據可見行刪除Z列中的內容(而不是整行)。所以基本上過濾後,我想刪除列Z中的所有可見內容。電子表格的行數一直在增長,所以我不能使用我現在使用的只是選擇特定單元格和刪除內容。希望這是有道理的!

回答

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