Tìm và xóa vùng dữ liệu từ dưới lên

Liên hệ QC

hoahuongduong1986

Thành viên thường trực
Tham gia
14/11/18
Bài viết
346
Được thích
40
Dear Anh Chị và các bạn,
Em dùng Code dưới để VLOOKup từ Sheet 6 sang ba Cột của SHeet 4 với giới hạn tối đa là 30 ngàn dòng. Nhưng thực chất số lượng dòng nhỏ hơn 30000 dòng. Viết đoạn Code như thế nào để sau khi lọc xong công đoạn này, Nó rò từ địa chỉ ô A30000 lên trên, gặp dữ liệu đầu tiên tại tọa độ Ax thì nó sẽ xóa toàn bộ từ vung (Ax: GH30000). Với x là tọa độ mà tại đó là giá trị đầu tiên từ A30000 rà soát lên.


Option Explicit
Sub VLookupL()
Dim i As Long, KQ(), Ma(), SoGiaoDich(), Item, Dic As Object
With Sheet6
Ma = Range(.[B2], .[B400].End(3)).Resize(, 4)
End With

With Sheet4
SoGiaoDich = .Range(.[CO2], .[CO30000].End(3))

ReDim KQ(1 To UBound(SoGiaoDich), 1 To 3)
Set Dic = CreateObject("Scripting.dictionary")
For i = 1 To UBound(Ma)
Item = CStr(Ma(i, 1))
If Not Dic.exists(Item) Then
Dic.Add CStr(Ma(i, 1)), i
End If
Next i
For i = 1 To UBound(SoGiaoDich)
Item = CStr(SoGiaoDich(i, 1))
If Dic.exists(Item) Then
KQ(i, 1) = Ma(Dic.Item(Item), 2)
KQ(i, 2) = Ma(Dic.Item(Item), 3)
KQ(i, 3) = Ma(Dic.Item(Item), 4)
Else
KQ(i, 1) = "C" & ChrW(7847) & "n nh" & ChrW(7853) & "p mã"
KQ(i, 2) = "C" & ChrW(7847) & "n nh" & ChrW(7853) & "p mã"
KQ(i, 3) = "C" & ChrW(7847) & "n nh" & ChrW(7853) & "p mã"
End If
Next i
.[DK2:N30000].ClearContents
.[DK2].Resize(i - 1, 3) = KQ
Set Dic = Nothing
End With

End Sub
 
Đây ạ,
Tại cột I - số tiền quy đổi em đã có Code tính và cho ra két quả, nhưng do cố định đến dòng I20 nên Table nó mở rộng đến dòng 20. Sửa sao để nó chỉ tính công thức này tại cột I khi mà giá trị tại các ô cột E khác rỗng ạ. Còn giá trị tại cột E bằng rỗng thì không tính toán gì ạ.
Bạn không hiểu tôi nói gì à? Tôi viết tiếng Việt mà.

Tôi gửi lại tập tin cho bạn mà tôi không sửa gì trong code. Tôi chỉ xóa B5:B11 thôi.

Bây giờ thì bạn nhấn "mặt cười" rồi xem kết quả nhé.
 

File đính kèm

Upvote 0
Bạn không hiểu tôi nói gì à? Tôi viết tiếng Việt mà.

Tôi gửi lại tập tin cho bạn mà tôi không sửa gì trong code. Tôi chỉ xóa B5:B11 thôi.

Bây giờ thì bạn nhấn "mặt cười" rồi xem kết quả nhé.
Dạ, em thấy chỉ tại Code công thức đổi tiền tại cột I nó cố định đến dòng 20 nên nó mới bị ạ, còn code VLookup anh sửa cho em là ổn rồi ạ. Em cảm ơn anh ạ. Em sẽ nghiên cứu thêm ạ !!!
 
Upvote 0
Dạ, em thấy chỉ tại Code công thức đổi tiền tại cột I nó cố định đến dòng 20 nên nó mới bị ạ, còn code VLookup anh sửa cho em là ổn rồi ạ. Em cảm ơn anh ạ. Em sẽ nghiên cứu thêm ạ !!!
Góp ý với bạn
Qua nhiều bài viết của bạn hỏi vẫn chưa hình dung bạn đang muốn xây dựng file báo cáo như thế nào. Mình và có thể anh chị diễn đàn sẽ sẵn sàng xây dựng ý tưởng cho bạn hết sức có thể những gì mình biết, còn theo bạn thì vọc vạch tới đâu tính tới đó thì thật sự sẽ khó giải quyết được hết vấn đề.
Lưu ý tùy dữ liệu code sẽ giải quyết khác nhau, khi bạn thay đổi nó sẽ khác ngay.
 
Upvote 0
Góp ý với bạn
Qua nhiều bài viết của bạn hỏi vẫn chưa hình dung bạn đang muốn xây dựng file báo cáo như thế nào. Mình và có thể anh chị diễn đàn sẽ sẵn sàng xây dựng ý tưởng cho bạn hết sức có thể những gì mình biết, còn theo bạn thì vọc vạch tới đâu tính tới đó thì thật sự sẽ khó giải quyết được hết vấn đề.
Lưu ý tùy dữ liệu code sẽ giải quyết khác nhau, khi bạn thay đổi nó sẽ khác ngay.
Dạ vâng ạ. Có gì em sẽ hỏi tiếp ạ và sẽ cố gắng rõ ràng mục đích nhất ạ. Thanks anh !
 
Upvote 0
Web KT

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

Back
Top Bottom