Trần Văn Bình
GTVT
- Tham gia
- 30/7/06
- Bài viết
- 423
- Được thích
- 383
- Nghề nghiệp
- GTVT
Dạ em cám ơn anh nhiều thực ra Code Arr em không hiểu nên không biết gán kết quả.Mình vòng vo 1 chút, bạn kiểm trong file, sau khi thấy dữ liệu OK ta tiếp tục xíu nữa!
Sub TongHopDuLieu()
Dim Rws As Long, J As Long, W As Long, Tmr As Double, jJ As Long
Dim Arr()
Sheets("DuLieu").Select
Rws = [f5].CurrentRegion.Rows.Count: Tmr = Timer()
Arr() = [E5].Resize(Rws, 4).Value: ReDim aKQ(1 To Rws, 1 To 7)
For J = 1 To UBound(Arr())
W = W + 1: aKQ(W, 1) = W
aKQ(W, 2) = Arr(J, 2): aKQ(W, 4) = Arr(J, 4)
aKQ(W, 7) = Arr(J, 1)
Next J
Sheets("TB_GSHT").Select: W = 0
Rws = [B5].CurrentRegion.Rows.Count
Arr() = [B5].Resize(Rws, 6).Value
ReDim aRes(1 To UBound(Arr()), 1 To 3)
For J = 1 To UBound(aKQ()) 'Bien Kiêm Soát (2) '
W = W + 1
For jJ = 1 To UBound(Arr())
If aKQ(J, 2) = Arr(jJ, 1) Then
aKQ(J, 3) = Arr(jJ, 3): aKQ(J, 5) = Arr(jJ, 5)
aKQ(J, 6) = Arr(jJ, 6)
Exit For
End If
Next jJ
Next J
With Sheets("Data")
.[A5].Resize(2 * W, 7).Value = ""
.[A5].Resize(W, 7).Value = aKQ()
.[O9999].End(xlUp).Offset(1).Value = Timer() - Tmr
.Select
End With
End Sub
1. . . . . .
2. Hàm load hơi nặng
. . . . . . .
Mã | Phù hiệu | |||||||||||||||||||||||||
HD_ | Xe Hợp đồng | 339 | ||||||||||||||||||||||||
Tax | Xe Taxi | 390 | ||||||||||||||||||||||||
Tai | Xe Tải | 1752 | ||||||||||||||||||||||||
DK_ | Xe Đầu kéo | 450 | ||||||||||||||||||||||||
Con | Xe Container | 100 | ||||||||||||||||||||||||
CD_ | Xe chạy tuyến cố định | 246 | ||||||||||||||||||||||||
Byt | Xe Buýt | 25 | ||||||||||||||||||||||||
XTC | Xe Trung chuyển | 1 | ||||||||||||||||||||||||
XDL | Xe Du lịch | 53 | ||||||||||||||||||||||||
Nhờ bác xem tiếp giúp em dùng hàm Xlookop và Vlookup đối sánh thấy dữ liệu có khác. Nhơ bác giúp tiếp ạCopy cái ni & chép đè lên macro cũ & kiểm lại lần chót, nha!
PHP:Sub TongHopDuLieu() Dim Rws As Long, J As Long, W As Long, Tmr As Double, jJ As Long Dim Arr() Sheets("DuLieu").Select Rws = [f5].CurrentRegion.Rows.Count: Tmr = Timer() Arr() = [E5].Resize(Rws, 4).Value: ReDim aKQ(1 To Rws, 1 To 7) For J = 1 To UBound(Arr()) W = W + 1: aKQ(W, 1) = W aKQ(W, 2) = Arr(J, 2): aKQ(W, 4) = Arr(J, 4) aKQ(W, 7) = Arr(J, 1) Next J Sheets("TB_GSHT").Select: W = 0 Rws = [B5].CurrentRegion.Rows.Count Arr() = [B5].Resize(Rws, 6).Value ReDim aRes(1 To UBound(Arr()), 1 To 3) For J = 1 To UBound(aKQ()) 'Bien Kiêm Soát (2) ' W = W + 1 For jJ = 1 To UBound(Arr()) If aKQ(J, 2) = Arr(jJ, 1) Then aKQ(J, 3) = Arr(jJ, 3): aKQ(J, 5) = Arr(jJ, 5) aKQ(J, 6) = Arr(jJ, 6) Exit For End If Next jJ Next J With Sheets("Data") .[A5].Resize(2 * W, 7).Value = "" .[A5].Resize(W, 7).Value = aKQ() .[O9999].End(xlUp).Offset(1).Value = Timer() - Tmr .Select End With End Sub
Người viết phần mềm đã chưa chú í đến vì 1 hay vài lý do nào đó , thì bạn cứ để vậy ư?Dạ không anh ạ (1) 02 Sheet gồm "Dulieu" và "TB_GSHT" là xuất từ phần mềm ra, nên em để nguyên định dạng file đó anh
(2)Nhờ bác xem tiếp giúp em dùng hàm Xlookop và Vlookup đối sánh thấy dữ liệu có khác