Xin code Merge ô dữ liệu giống nhau theo vùng điều kiện (1 người xem)

  • Thread starter Thread starter Duc9184
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

Duc9184

Thành viên mới
Tham gia
2/7/18
Bài viết
8
Được thích
0
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!
 

File đính kèm

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!
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
 
Upvote 0
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!
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
 
Upvote 0
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

Cảm ơn đã chia sẻ


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

Cảm ơn anh đã chia sẻ kinh nghiệm.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom