Các bác cho em hỏi về lọc dữ liệu của array với ạ

Blue Softs Liên hệ QC

tukut3boyhp9x

Thành viên mới
Tham gia
9/1/18
Bài viết
12
Được thích
1
Giới tính
Nam
Chào mọi người ạ
em có một danh sách gồm 45 số (vd ảnh) (không quan trọng ngang dọc)
em muốn loại bỏ dữ liệu nằm trong 4 số đã chọn đi
em đã dùng filter nhưng giá trị của nó không cố định nó lấy tất cả các số chứa số lọc bao gồm cả chục và đơn vịScreenshot 2021-09-15 161142.png
 
Giải pháp
Em muốn đưa dữ liệu ra không bao gồm bốn số đã chọn ở Range("A2 : D2") ạ
Dạ em lấy hình làm ví dụ thôi ạ nếu bác cần e gửi bác file ạ
Ý là em muốn hỏi code trong vba thôi chứ không em dùng filter lọc dần ra cũng được ạ
Bài đã được tự động gộp:


Dạ em muốn hỏi code về vba ấy ạ chứ bên workbook em có thể dùng filter với countif cũng hoạt động được
Bài đã được tự động gộp:


Bác cho em xin demo được không ạ
Chép thủ tục này vào module và cho chạy thử xem đã đúng ý chưa:

Mã:
Sub LoaiBoSo()
    Dim objDic As Object
    Dim c As Long, u As Long
    Dim arrFindCell, arrData
    Set objDic = CreateObject("Scripting.Dictionary")
    c = ActiveSheet.UsedRange.Columns.Count
    arrData = Range(Cells(2, 1), Cells(2, c)).Value
    arrFindCell =...

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,308
Được thích
16,063
Giới tính
Nam
Chào mọi người ạ
em có một danh sách gồm 45 số (vd ảnh) (không quan trọng ngang dọc)
em muốn loại bỏ dữ liệu nằm trong 4 số đã chọn đi
em đã dùng filter nhưng giá trị của nó không cố định nó lấy tất cả các số chứa số lọc bao gồm cả chục và đơn vịView attachment 266131
Bạn muốn xóa như thế nào? Xóa kiểu clear (xóa giá trị tại một ô và làm ô đó thành ô trống), hay xóa kiểu delete (xóa ô và dồn ô khác qua)?
Bạn đưa file lên đi, đừng gửi hình.
 
Upvote 0

snow25

Thành viên gắn bó
Tham gia
24/7/18
Bài viết
2,816
Được thích
2,803
Donate (Momo)
Donate
Giới tính
Nam
Chào mọi người ạ
em có một danh sách gồm 45 số (vd ảnh) (không quan trọng ngang dọc)
em muốn loại bỏ dữ liệu nằm trong 4 số đã chọn đi
em đã dùng filter nhưng giá trị của nó không cố định nó lấy tất cả các số chứa số lọc bao gồm cả chục và đơn vịView attachment 266131
Nạp số đã chọn vào dictionary rồi duyệt qua các số để kiểm tra xem nó có chưa nếu có rồi thì xóa đi.
 
Upvote 0

qtm1987

Thành viên hoạt động
Tham gia
15/9/09
Bài viết
198
Được thích
115
Nghề nghiệp
Kế toán tổng hợp
Sao bạn không thêm 1 sheet mới để hiển thị kết quả. Sheet bạn chụp thì xem như là sheet Data chứa dữ liệu. Tại sheet mới này cách đơn giản dễ hiểu nhất là bạn đặt công thức = vị trí các ô bên sheet Data nhưng sẽ kèm theo mệnh đề If để loại trừ các số bạn chọn cho = 0 hoặc chỉnh không hiện số 0.
 
Upvote 0

tukut3boyhp9x

Thành viên mới
Tham gia
9/1/18
Bài viết
12
Được thích
1
Giới tính
Nam
Bạn muốn xóa như thế nào? Xóa kiểu clear (xóa giá trị tại một ô và làm ô đó thành ô trống), hay xóa kiểu delete (xóa ô và dồn ô khác qua)?
Bạn đưa file lên đi, đừng gửi hình.
Em muốn đưa dữ liệu ra không bao gồm bốn số đã chọn ở Range("A2 : D2") ạ
Dạ em lấy hình làm ví dụ thôi ạ nếu bác cần e gửi bác file ạ
Ý là em muốn hỏi code trong vba thôi chứ không em dùng filter lọc dần ra cũng được ạ
Bài đã được tự động gộp:

Sao bạn không thêm 1 sheet mới để hiển thị kết quả. Sheet bạn chụp thì xem như là sheet Data chứa dữ liệu. Tại sheet mới này cách đơn giản dễ hiểu nhất là bạn đặt công thức = vị trí các ô bên sheet Data nhưng sẽ kèm theo mệnh đề If để loại trừ các số bạn chọn cho = 0 hoặc chỉnh không hiện số 0.
Dạ em muốn hỏi code về vba ấy ạ chứ bên workbook em có thể dùng filter với countif cũng hoạt động được
Bài đã được tự động gộp:

Nạp số đã chọn vào dictionary rồi duyệt qua các số để kiểm tra xem nó có chưa nếu có rồi thì xóa đi.
Bác cho em xin demo được không ạ
 

File đính kèm

  • Book1.xlsx
    9.3 KB · Đọc: 2
Upvote 0

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,308
Được thích
16,063
Giới tính
Nam
Em muốn đưa dữ liệu ra không bao gồm bốn số đã chọn ở Range("A2 : D2") ạ
Dạ em lấy hình làm ví dụ thôi ạ nếu bác cần e gửi bác file ạ
Ý là em muốn hỏi code trong vba thôi chứ không em dùng filter lọc dần ra cũng được ạ
Bài đã được tự động gộp:


Dạ em muốn hỏi code về vba ấy ạ chứ bên workbook em có thể dùng filter với countif cũng hoạt động được
Bài đã được tự động gộp:


Bác cho em xin demo được không ạ
Chép thủ tục này vào module và cho chạy thử xem đã đúng ý chưa:

Mã:
Sub LoaiBoSo()
    Dim objDic As Object
    Dim c As Long, u As Long
    Dim arrFindCell, arrData
    Set objDic = CreateObject("Scripting.Dictionary")
    c = ActiveSheet.UsedRange.Columns.Count
    arrData = Range(Cells(2, 1), Cells(2, c)).Value
    arrFindCell = Range("A4:E4").Value
    u = UBound(arrData, 2)
    For c = 1 To u
        objDic(arrData(1, c)) = ""
    Next
    For c = 1 To 5
        objDic.Remove arrFindCell(1, c)
    Next
    Range("A6").Resize(, objDic.Count).Value = objDic.Keys
End Sub
 
Upvote 1
Giải pháp
Top Bottom