Xin hỏi Nhờ mọi người cách chọn nhanh các ô giá trị bằng 0 để xóa

Liên hệ QC

baolong0412

Thành viên mới
Tham gia
24/6/21
Bài viết
10
Được thích
0
Em có 1 bảng dữ liệu hàng trăm dòng, muốn chọn nhanh các ô có giá trị bằng 0 từ cột H đến cột K để xóa. Xin gửi kèm theo File ạ. Xin cảm ơn!
 

File đính kèm

Em có 1 bảng dữ liệu hàng trăm dòng, muốn chọn nhanh các ô có giá trị bằng 0 từ cột H đến cột K để xóa. Xin gửi kèm theo File ạ. Xin cảm ơn!
Chọn rồi xóa là một việc mà Hàm và công thức Excel chắc không làm được, nhưng làm "tàng hình" chúng đi thì dùng công thức trong Conditional Formating thì có thể làm được
 
Trước tiên bạn chọn từ H6 đến K41 rồi nhấn Ctrl+F
Hộp Find and Replace sẽ hiện ra.
Tab Find
Find what: nhập số 0
Look in: Values
Rồi nhấn Find All
Nó sẽ hiện ra danh sách ô trùng bên dưới, click chuột kéo cho cái hộp thoại đó rộng ra(góc phải dưới) rồi click vô chữ Value (của danh sách đã tìm được cho nó sắp xếp theo bé lớn lại) rồi kích vô dòng đầu tiên có Value là 0 rồi lăn chuột xuống, rồi giữ phím Shift rồi click vô dòng có value =0 dưới cùng để chọn hết. Thế là các ô giá trị 0 đã được chọn, nhấn Close hộp thoại Find and Replace rồi nhấn Delete để xoá thôi.
Quá dễ đúng không! ;)
 
Trước tiên bạn chọn từ H6 đến K41 rồi nhấn Ctrl+F
Hộp Find and Replace sẽ hiện ra.
Tab Find
Find what: nhập số 0
Look in: Values
Rồi nhấn Find All
Nó sẽ hiện ra danh sách ô trùng bên dưới, click chuột kéo cho cái hộp thoại đó rộng ra(góc phải dưới) rồi click vô chữ Value (của danh sách đã tìm được cho nó sắp xếp theo bé lớn lại) rồi kích vô dòng đầu tiên có Value là 0 rồi lăn chuột xuống, rồi giữ phím Shift rồi click vô dòng có value =0 dưới cùng để chọn hết. Thế là các ô giá trị 0 đã được chọn, nhấn Close hộp thoại Find and Replace rồi nhấn Delete để xoá thôi.
Quá dễ đúng không! ;)
Vâng, cảm ơn Anh nhiều!
 
Find Next thì nó chọn tất cả các số đi kèm với số 0 Anh ah, như 10, 20,...Mặt khác bảng dữ liệu có đến hàng trăm dòng thì Find Next thấy nó tìm nhiều lần quá Anh!
 
Find Next thì nó chọn tất cả các số đi kèm với số 0 Anh ah, như 10, 20,...Mặt khác bảng dữ liệu có đến hàng trăm dòng thì Find Next thấy nó tìm nhiều lần quá Anh!
Tôi chỉ nói ghi macro nhưng Find All thì chịu rồi. Làm như tôi nói, cho số 0 thành màu trắng trùng với màu nền là khả thi và dễ nhất.
 
Mục đích của em là muốn chọn các giá trị bằng 0 rồi xóa, để cho File bảng tính đỡ nặng, vì giá trị = 0 chiếm gần 90% trong nhiều cột và hàng trăm, lên đến hàng ngàn dòng Anh ah!
Nếu vậy thì Hàm và công thức (là cái box mà bạn đang đăng bài đấy) làm sao làm được. Phải dùng VBA thôi.
 
Nếu vậy thì Hàm và công thức (là cái box mà bạn đang đăng bài đấy) làm sao làm được. Phải dùng VBA thôi.
Thì người ta muốn VBA mà bạn. Bạn có đọc bài #5 không? Chẳng qua người ta tranh thủ chủ đề đã có trong "Hàm và công thức" để hỏi thôi.

Find Next thì nó chọn tất cả các số đi kèm với số 0 Anh ah, như 10, 20,...
Tôi nghĩ là giúp bạn sẽ mất nhiều thời gian. Vì bạn chỉ đặt vấn đề chung chung, bạn không giải thích kỹ. Có lẽ nếu người ta đưa ra phương án rồi bạn sẽ cụ thể hóa dần dần cái "em muốn" của bạn.

Bạn muốn tìm trong những ô nhập tay hay cả trong những ô có công thức? Vì nếu là tôi thì tôi không tìm trong những ô có công thức. Bởi rất có thể công thức truy vấn tới vd. A1 và với A1 hiện hành thì công thức trả về 0. Nhưng ngày mai nếu nhập vào A1 giá trị khác thì công thức trả về giá trị <> 0 thì sao? Nếu hôm nay khi tìm thấy thì xóa công thức rồi thì làm gì còn công thức cho ngày mai nữa. Nhưng đấy là tôi nghĩ thế, còn bạn có mô tả gì đâu.

Bạn nói Find/FindNext tìm thấy 0 cả trong vd. 10. Đó là do khi dùng Find bạn nhập LookAt = xlPart. Muốn không tìm 0 trong 10, 1205 thì phải có LookAt = xlWhole

Có lẽ khả năng nhập 0 bằng tay cũng không sảy ra trong thực tế. Rất có thể đây là dữ liệu lấy từ đâu đó chăng.
 
Lần chỉnh sửa cuối:
À xin lỗi, tôi quên mất chuyện xảy ra ở các bài bên trên.

Còn chuyện nhiều cell chứa giá trị 0 thường là lấy từ CSDL khác sang hoặc là kết quả của 1 công thức cho cả vùng rồi chép dán lại giá trị.
 
Em có thực hiện ghi macro sau đó thực hiện, nhưng khi chọn từ H9:K14 sau đó sử dụng lệnh "Xóa gia tri bang 0" thì xóa luôn tất cả các giá trị từ Ô H9:K14 mà không giữ lại các giá trị khác 0, Xin hỏi mọi người bị lỗi nào ạ. Em xin gửi File kèm theo. Cảm ơn mọi người!
 

File đính kèm

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à đỏ đỏ

Sub test()
' xoa_0 Selection, 0 ' chon vung can thao tac roi chay sub test
' find_xoa_0 Selection, "hic hic" ' chon vung can thao tac roi chay sub test

xoa_0 Sheet1.Range("C3:H15"), 0 ' chay sub test cho vung C3:H15 tren Sheet1
' find_xoa_0 Sheet1.Range("C3:H15"), "hic hic" ' chay sub test cho vung C3:H15 tren Sheet1
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom