angelfire1512
Thành viên mới

- Tham gia
- 26/8/14
- Bài viết
- 5
- Được thích
- 0
[TABLE="width: 79"]
[TR]
[TD]
630190250
[/TD]
[/TR]
[TR]
[TD]630190251[/TD]
[/TR]
[TR]
[TD]630190251[/TD]
[/TR]
[TR]
[TD]632325140[/TD]
[/TR]
[TR]
[TD]632325140[/TD]
[/TR]
[TR]
[TD]632325141[/TD]
[/TR]
[TR]
[TD]632325141
[/TD]
[/TR]
[TR]
[TD]632325141
[/TD]
[/TR]
[TR]
[TD]632325141[/TD]
[/TR]
[TR]
[TD]636273360[/TD]
[/TR]
[TR]
[TD]636273360[/TD]
[/TR]
[TR]
[TD]636273360[/TD]
[/TR]
[TR]
[TD]636273360
[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]637352760[/TD]
[/TR]
[TR]
[TD]637352761[/TD]
[/TR]
[TR]
[TD]641950730[/TD]
[/TR]
[TR]
[TD]641950730[/TD]
[/TR]
[/TABLE]
lọc trùng với điều kiện là
chỉ giữ lại những dòng có giá trị số cuối lớn nhất
ví dụ 636273360 và 636273361 và 636273362 thì xóa hết những dòng 636273360, 636273361 đi chỉ giữ lại 636273362 thôi
trên đó là code e viết
code này e làm để lọc những dòng đó ra, chưa xóa nhưng đánh dấu bằng cách những dòng nào cần xóa thì ô bên cạnh ghi xóa
bác nào giúp e với ạ. e mới mày mò về vba, cũng google mấy ngày rồi tự nghiên cứu mà chưa giải đc bài này
ý tưởng của e là lấy hàm left để so sánh mấy ký tự đầu, rồi nếu = nhau thì mới so sánh ký tự cuối, dòng nào nhỏ hơn thì del
[TR]
[TD]
630190250
[/TD]
[/TR]
[TR]
[TD]630190251[/TD]
[/TR]
[TR]
[TD]630190251[/TD]
[/TR]
[TR]
[TD]632325140[/TD]
[/TR]
[TR]
[TD]632325140[/TD]
[/TR]
[TR]
[TD]632325141[/TD]
[/TR]
[TR]
[TD]632325141
[/TD]
[/TR]
[TR]
[TD]632325141
[/TD]
[/TR]
[TR]
[TD]632325141[/TD]
[/TR]
[TR]
[TD]636273360[/TD]
[/TR]
[TR]
[TD]636273360[/TD]
[/TR]
[TR]
[TD]636273360[/TD]
[/TR]
[TR]
[TD]636273360
[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]636273361[/TD]
[/TR]
[TR]
[TD]637352760[/TD]
[/TR]
[TR]
[TD]637352761[/TD]
[/TR]
[TR]
[TD]641950730[/TD]
[/TR]
[TR]
[TD]641950730[/TD]
[/TR]
[/TABLE]
lọc trùng với điều kiện là
chỉ giữ lại những dòng có giá trị số cuối lớn nhất
ví dụ 636273360 và 636273361 và 636273362 thì xóa hết những dòng 636273360, 636273361 đi chỉ giữ lại 636273362 thôi
Mã:
Sub test()
Dim LastRow As Long
Dim i, j As Integer
'MsgBox Left(Range("c3"), 8)
With ActiveSheet
LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
End With
For i = 1 To 2
For j = 0 To LastRow - 1
If Left(Cells(i, "C"), 8) = Left(Cells(i + j, "C"), 8) Then
If Right(Cells(i, "C"), 1) > Right(Cells(i + j, "C"), 1) Then Cells(i + j, "D").Value = "xoa"
Else: If Right(Cells(i, "C"), 1) < Right(Cells(i + j, "C"), 1) Then Cells(i, "D").Value = "xoa"
End If
Next j
Next i
End Sub
code này e làm để lọc những dòng đó ra, chưa xóa nhưng đánh dấu bằng cách những dòng nào cần xóa thì ô bên cạnh ghi xóa
bác nào giúp e với ạ. e mới mày mò về vba, cũng google mấy ngày rồi tự nghiên cứu mà chưa giải đc bài này
ý tưởng của e là lấy hàm left để so sánh mấy ký tự đầu, rồi nếu = nhau thì mới so sánh ký tự cuối, dòng nào nhỏ hơn thì del