Mã:
Private Sub CommandButton1_Click()
Selection.Select
Selection.Find(What:="0", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate ' (A)
Selection.ClearContents ' (B)
End Sub
Sau khi chọn H9:K14 và nhấn "Xóa gia tri bang 0" thì Selection = H9:K14. Sau khi dòng (A) được thực hiện thì ô đầu tiên tìm được - ô có giá trị 0, được Activate. Nhưng Selection vẫn là H9:K14. Vì thế tại (B) Selection.ClearContents có nghĩa là xóa hết các giá trị trong vùng H9:K14. Nếu bạn muốn mục sở thị việc xóa ô đầu tiên tìm được thì dùng Select thay cho Activate. Như thế thì sau dòng (A) Selection = "ô tìm được có giá trị 0", và Selection.ClearContents đồng nghĩa với xóa "ô tìm được có giá trị 0".
Trong tập tin đính kèm có sub xoa_0 (không dùng FIND) và find_xoa_0 (dùng FIND).
xoa_0 theo tôi thì phải nhanh hơn, vì thế khi dữ liệu nhiều ...
Chú ý:
Chú thích trong sub test không chính xác. Phải là
đỏ đỏ