Cám ơn bạn Nghiaphuc. Mình cần VBA gộp dữ liệu cho ra kết quả như hình minh họa mình gửi phía trên. Bạn giúp mình sửa lại code với.
Thế thì dùng code này vậy:
[GPECODE=vb]Sub MergeData_1()
Dim First As Range, Last As Range
Application.DisplayAlerts = False: Application.ScreenUpdating = False
Sheets("Sheet1").Activate
[I2:J65000].Clear
[A1].CurrentRegion.Resize(, 2).Copy [I1]
Set First = [I2]
Do
Set Last = First
Do While Last.Offset(1) = Last
Set Last = Last.Offset(1)
Loop
With Range(First, Last)
.Merge: .VerticalAlignment = xlCenter
End With
Set First = First.End(xlDown)
Loop Until First.Row = Cells.Rows.Count
Set First = [J2]
Do
Set Last = First
Do While Last.Offset(1, -1) = "" And Last.Offset(1) = Last
Set Last = Last.Offset(1)
Loop
With Range(First, Last)
.Merge: .VerticalAlignment = xlCenter
End With
Set First = First.End(xlDown)
Loop Until First.Row = Cells.Rows.Count
Application.DisplayAlerts = True: Application.ScreenUpdating = True
End Sub[/GPECODE]
Chắc chắn về tốc độ thì code này không thể nhanh bằng code ở cách trên được, tuy nhiên nếu bạn thực sự muốn kết quả như vậy thì cũng đành chấp nhận chậm một chút vậy.