2016-08-03 4 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 
関連する問題