Duc9184
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 2/7/18
- Bài viết
- 8
- Được thích
- 0
Dùng thử code này.Xin chào các anh, chị,
Em muốn viết 1 sub để tự động gộp các ô dữ liệu giống nhau theo cột và xét theo điều kiện của cột điều kiện, giống như file ví dụ đính kèm.
Nhờ các anh chị hướng dẫn hoặc viết giúp em viết sub trên.
Xin cảm ơn!
Public Sub GPE()
Dim Rng As Range, mRng As Range
Application.DisplayAlerts = False
For Each Rng In Sheet1.Range("B3", Sheet1.Range("B65000").End(xlUp))
If (mRng Is Nothing) Or (Rng.Offset(, -1).Value <> Rng.Offset(-1, -1).Value) Then
If Not mRng Is Nothing Then mRng.Merge
Set mRng = Rng
ElseIf Rng.Offset(, -1).Value = Rng.Offset(-1, -1).Value Then
Set mRng = Union(mRng, Rng)
End If
Next Rng
Application.DisplayAlerts = True
End Sub
Khuyên bạn không nên merge kiểu đó. Excel là dùng để tính toán, merge tùm lum rồi sao tính toán? Cho dù không tính toán thì ngay cả việc thiết lập công thức tham chiếu cũng là chuyện khó khăn rồiXin chào các anh, chị,
Em muốn viết 1 sub để tự động gộp các ô dữ liệu giống nhau theo cột và xét theo điều kiện của cột điều kiện, giống như file ví dụ đính kèm.
Nhờ các anh chị hướng dẫn hoặc viết giúp em viết sub trên.
Xin cảm ơn!
Dùng thử code này.
Mã:Public Sub GPE() Dim Rng As Range, mRng As Range Application.DisplayAlerts = False For Each Rng In Sheet1.Range("B3", Sheet1.Range("B65000").End(xlUp)) If (mRng Is Nothing) Or (Rng.Offset(, -1).Value <> Rng.Offset(-1, -1).Value) Then If Not mRng Is Nothing Then mRng.Merge Set mRng = Rng ElseIf Rng.Offset(, -1).Value = Rng.Offset(-1, -1).Value Then Set mRng = Union(mRng, Rng) End If Next Rng Application.DisplayAlerts = True End Sub
Khuyên bạn không nên merge kiểu đó. Excel là dùng để tính toán, merge tùm lum rồi sao tính toán? Cho dù không tính toán thì ngay cả việc thiết lập công thức tham chiếu cũng là chuyện khó khăn rồi