suamaytinhhcm
Thành viên mới

- Tham gia
- 6/9/11
- Bài viết
- 4
- Được thích
- 0
- Nghề nghiệp
- 1userfield[field4_set]=1
Dùng sub đơn giản saunhư thế không được bạn ơi.
mình muốn xóa thôi.
với dữ liệu của mình tới vài triệu ô lận. nếu dùng công thức này thì khó lắm
thank bro đã giúp. hy vọng góp ý thêm
Sub clear()
Set R = Range("data")
For Each cell In R
x = cell.Value
If WorksheetFunction.CountIf(R, cell) <> 0 Then
R.Cells.Find(cell, , , , , xlPrevious).ClearContents
cell.Value = x
End If
Next
End Sub
Hình như code này xóa chưa hết các ô trùng.Dùng sub đơn giản sau
Đặt name vùng dữ liệu là "data"Mã:Sub clear() Set R = Range("data") For Each cell In R x = cell.Value If WorksheetFunction.CountIf(R, cell) <> 0 Then R.Cells.Find(cell, , , , , xlPrevious).ClearContents cell.Value = x End If Next End Sub
Hình như code này xóa chưa hết các ô trùng.
Mình thử tham gia một code khác xem sao:
[GPECODE=vb]Sub ClearAndSort_()
Dim R As Range, Cll As Range, Cll1 As Range
Set R = Range("Data")
For Each Cll In R
If IsEmpty(Cll) Then GoTo TiepTheo
Set Cll1 = R.Find(Cll, , , xlWhole)
Do While Cll1.Address <> Cll.Address
Cll1.ClearContents
Set Cll1 = R.FindNext(Cll1)
Loop
TiepTheo:
Next
For Each Cll In R.Resize(1)
Cll.Resize(R.Rows.Count).Sort Cll, xlDescending
Next
End Sub[/GPECODE]
Sub RDuplicates()
Dim Arr(), iR As Long, jC As Long, Obj As Object
Set Obj = CreateObject("Scripting.Dictionary")
Arr = Range("Data").Value
For jC = 1 To UBound(Arr, 2)
For iR = 1 To UBound(Arr, 1)
If Not Obj.Exists(Arr(iR, jC)) Then
Obj.Add Arr(iR, jC), ""
Else
Arr(iR, jC) = ""
End If
Next
Next
[E2].Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr
Set Obj = Nothing
End Sub