dmtdmtbb
Biệt danh: xDelx
- Tham gia
- 24/5/07
- Bài viết
- 306
- Được thích
- 438
Phần này đã sửa lại một số như sau :
- So sánh 2 cột A và B để lấy số dòng nhiều nhất.
- Cùng lúc kiểm tra (A=B),(A<>B) và (B<> A) sẽ cải thiện tốc độ đáng kể.
- Nếu A nhiều hơn B hoặc ngược lại đều cho ra kết quả như sau : (A=B),(A<>B) và (B<> A).
Bác Viendo test lại dùm thời gian còn bao lâu.
- So sánh 2 cột A và B để lấy số dòng nhiều nhất.
- Cùng lúc kiểm tra (A=B),(A<>B) và (B<> A) sẽ cải thiện tốc độ đáng kể.
- Nếu A nhiều hơn B hoặc ngược lại đều cho ra kết quả như sau : (A=B),(A<>B) và (B<> A).
Bác Viendo test lại dùm thời gian còn bao lâu.
Mã:
Dim i, rNum, tNum As Integer
Dim tVal As String
[COLOR=blue]Sub Loc()[/COLOR]
On Error Resume Next
Application.ScreenUpdating = False
Range("C3:E65536").ClearContents
[COLOR=seagreen]'So sanh cot A va B de lay so dong nhieu nhat[/COLOR]
rNum = Range("A:A").Find(what:=vbNullString).Row - 1
tNum = Range("B:B").Find(what:=vbNullString).Row - 1
If rNum < tNum Then rNum = tNum
[COLOR=seagreen]''''''''''''''''''''''''''''''''''
[/COLOR]For i = 3 To rNum
[COLOR=seagreen]'Tim` A<>B & A=B[/COLOR]
If Cells(i, 1) <> vbNullString Then
tVal = Range("B:B").Find(what:=Cells(i, 1)).Value
If Err.Number > 0 Then
Range("C:C").Find(what:=vbNullString).Value = Cells(i, 1).Value
Else
Range("E:E").Find(what:=vbNullString).Value = tVal
End If
Err.Number = 0
End If
[COLOR=seagreen]'Tim B<>A[/COLOR]
If Cells(i, 2) <> vbNullString Then
tVal = Range("A:A").Find(what:=Cells(i, 2)).Value
If Err.Number > 0 Then Range("D:D").Find(what:=vbNullString).Value = Cells(i, 2).Value
Err.Number = 0
End If
Next i
Application.ScreenUpdating = True
[COLOR=blue]End Sub[/COLOR]
File đính kèm
Lần chỉnh sửa cuối: