Ghép nội dung nhiều cột lại thành một cột

Ví dụ bạn có 3 cột dữ liệu như hình dưới 

 

Làm thế nào để ghép những nội dung này thành một cột ? Tất nhiên bạn có thể dùng công thức để nối lại

 

=C3&D3&E3

 

Sau đó kéo kết quả , nhưng nếu dữ liệu quá dài và bạn lại không muốn giữ lại những ô D và E thì bạn có thể dùng một Macro đơn giản như sau

 

Sub StuffTogether()
    Dim FirstCol As Integer, FirstRow As Integer
    Dim ColCount As Integer, RowCount As Integer
    Dim ThisCol As Integer, ThisRow As Integer
    Dim J As Integer, K As Integer
    Dim MyText As String

    FirstCol = ActiveWindow.RangeSelection.Column
    FirstRow = ActiveWindow.RangeSelection.Row
    ColCount = ActiveWindow.Selection.Columns.Count
    RowCount = ActiveWindow.Selection.Rows.Count

    For J = 1 To RowCount
        ThisRow = FirstRow + J - 1
        MyText = \"\"
        For K = 1 To ColCount
            ThisCol = FirstCol + K - 1
            MyText = MyText & Cells(ThisRow, ThisCol).Text & \" \"
            Cells(ThisRow, ThisCol).Value = \"\"
        Next K
        MyText = Trim(MyText)
        Cells(ThisRow, FirstCol).Value = MyText
    Next J
End Sub

 

Bạn chọn những ô cạnh nhau muốn ghép , sau đó chạy Macro trên sẽ được kết quả như ý

 

\"hinh2\"