Nối các ô dữ liệu trong các cột thành 1 ô trong excel qua VBA (3 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

pham ha 94

Thành viên chính thức
Tham gia
13/12/22
Bài viết
86
Được thích
6
Nhờ các bác hỗ trợ. Mong muốn được gom gộp các ô theo hàng ở cột B thành 1 ô duy nhất ở cột A
Số lượng ô ở cột B là ngẫu nhiên theo khoảng cách của cột A và cột A có thể dài hơn 3 dòng dữ liệu
Em cảm ơn
 

File đính kèm

Cài office nào có hàm TEXTJOIN.
Mã:
E2=IFERROR(IF(A2<>"";TEXTJOIN(CHAR(10);;PROPER(OFFSET(A2;0;1;MATCH(1;--(A3:A13<>"");0);1)));"");PROPER(TEXTJOIN(CHAR(10);;B2:B13)))
Bài đã được tự động gộp:

Nhờ các bác hỗ trợ. Mong muốn được gom gộp các ô theo hàng ở cột B thành 1 ô duy nhất ở cột A
Số lượng ô ở cột B là ngẫu nhiên theo khoảng cách của cột A và cột A có thể dài hơn 3 dòng dữ liệu
Em cảm ơn
 

File đính kèm

Nhờ các bác hỗ trợ. Mong muốn được gom gộp các ô theo hàng ở cột B thành 1 ô duy nhất ở cột A
Số lượng ô ở cột B là ngẫu nhiên theo khoảng cách của cột A và cột A có thể dài hơn 3 dòng dữ liệu
Em cảm ơn
Bạn tham khảo:
Mã:
Option Explicit

Sub gom()
    Dim sheet As Worksheet
    Dim Data As Variant
    Dim Str1 As String, Str2 As String
    Dim r As Long, i As Long
    Set sheet = ThisWorkbook.ActiveSheet
    r = sheet.Cells(sheet.Rows.Count, "B").End(xlUp).Row
    Data = sheet.Range("A2:B" & r).Value
    For i = LBound(Data, 1) To UBound(Data, 1)
        Str1 = Data(i, 1): Str2 = Data(i, 2)
        If Len(Str1) > 0 Then
            r = i
            Data(r, 1) = Str1
            Data(r, 2) = Str2
        Else
            Data(i, 2) = Empty
            Data(r, 2) = Data(r, 2) & vbNewLine & Str2
        End If
    Next i
    sheet.Range("G2").Resize(UBound(Data, 1), 2).Value = Data
End Sub
 
Bạn tham khảo:
Mã:
Option Explicit

Sub gom()
    Dim sheet As Worksheet
    Dim Data As Variant
    Dim Str1 As String, Str2 As String
    Dim r As Long, i As Long
    Set sheet = ThisWorkbook.ActiveSheet
    r = sheet.Cells(sheet.Rows.Count, "B").End(xlUp).Row
    Data = sheet.Range("A2:B" & r).Value
    For i = LBound(Data, 1) To UBound(Data, 1)
        Str1 = Data(i, 1): Str2 = Data(i, 2)
        If Len(Str1) > 0 Then
            r = i
            Data(r, 1) = Str1
            Data(r, 2) = Str2
        Else
            Data(i, 2) = Empty
            Data(r, 2) = Data(r, 2) & vbNewLine & Str2
        End If
    Next i
    sheet.Range("G2").Resize(UBound(Data, 1), 2).Value = Data
End Sub
Cam on bac rat nhieu
 
Web KT

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

Back
Top Bottom