Sub test()
Dim rng As Range
Set rng = Selection
Dim iRow As Long
Dim iCol As Long
Dim iStart As Long
Dim iStop As Long
For iCol = 1 To rng.Columns.Count
iStart = 0
iStop = 0
For iRow = 1 To rng.Rows.Count
If rng.Cells(iRow, iCol) = rng.Cells(iRow + 1, iCol) And iStart = 0 Then iStart = iRow + 1
If rng.Cells(iRow, iCol) <> rng.Cells(iRow + 1, iCol) Then
iStop = iRow
If iStart <> 0 Then
Range(rng.Cells(iStart, iCol), rng.Cells(iStop, iCol)).Clear
Range(rng.Cells(iStart, iCol), rng.Cells(iStop, iCol)).Merge
iStart = 0
End If
End If
Next
Next
End Sub
Option Explicit
Sub MerCells()
Dim Clls As Range, mRng As Range: Dim eRw As Long
eRw = [a65500].End(xlUp).Row
For Each Clls In Range("A2:A" & eRw)
With Clls
If .Offset(1).Value <> .Value Then
If mRng Is Nothing Then
.Offset(, 2) = .Value
Else
mRng.Merge: Set mRng = Nothing
End If
Else
If mRng Is Nothing Then
.Offset(, 2) = .Value: Set mRng = .Offset(1, 2)
Else
Set mRng = Union(mRng, .Offset(1, 2))
End If
End If
End With
Next Clls
End Sub
Tôi chạy thử code thi không thấy có lỗi gì. Bạn thử post lỗi chi tiết lên xem nguyên nhân do đâu nhé.Em đã thử rồi 2 macro chạy tốt nhưng macro của rollover79 có lỗi, nhưng không sao , chay vẫn đúng. Cảm ơn các anh chị nhiều nha!!!
Bạn nói thế không được rồi!Không cần đâu em lam được rồi.
Bạn không đưa nguyên file Excel đang bị lổi lên đây, đưa cái hình ấy thì biết được gì chứĐây là mã lỗi anh à. Em xin lỗi nha!!!