Tách dữ liệu từ 1 ô thành nhiều ô

Liên hệ QC

phucnguyen1993

Thành viên mới
Tham gia
20/11/18
Bài viết
48
Được thích
7
Dear các anh/chị, em có file mẫu như bên dưới,
Số liệu khá nhiều nên copy bằng tay khá lâu,
Có phương pháp nào để tách dữ liệu từ 1 ô ra nhiều ô như file không ạ.
Nhờ các Pro giúp đỡ, em xin cám ơn ạ
 

File đính kèm

Dear các anh/chị, em có file mẫu như bên dưới,
Số liệu khá nhiều nên copy bằng tay khá lâu,
Có phương pháp nào để tách dữ liệu từ 1 ô ra nhiều ô như file không ạ.
Nhờ các Pro giúp đỡ, em xin cám ơn ạ
Bạn thử:
PHP:
Sub Tam()
   Dim i, a
    a = Split(Range("B1"), ",")
      For i = LBound(a) To UBound(a)
        Cells(3, 2).Offset(i) = a(i)
      Next
End Sub
 
Bạn thử:
PHP:
Sub Tam()
   Dim i, a
    a = Split(Range("B1"), ",")
      For i = LBound(a) To UBound(a)
        Cells(3, 2).Offset(i) = a(i)
      Next
End Sub
dạ cám ơn bác, mình sử dụng được rồi ạ
Bài đã được tự động gộp:

Bạn cho cái file mà có nhiều dữ liệu cần lấy đây.Mình viết luôn 1 thể có 1 cái viêt về bạn chưa chắc đã sửa được.
hi dạ mình cám ơn bác Snow nhé, mình sử dụng của bác phulien1902 ok rồi ạ.
Cám ơn rất nhiều
 
Không dùng vòng lặp thì đệ quy.
Tôi chỉ nói vậy thôi chứ tôi không viết code đâu. Lý do thì quý vị biết rồi.
 
Rảnh rỗi.. :(

PHP:
Sub transpose1D(ByVal arr As Variant, ByRef result As Variant)
    'arr is array 1D '
    'result is array 2D '
    Static i As Long
    Static flag As Boolean
    If flag = False Then
        ReDim result(1 To UBound(arr) - LBound(arr) + 1, 1 To 1)
        flag = True
        i = LBound(arr)
    End If
    If i <= UBound(arr) Then
        result(i + 1, 1) = arr(i)
        i = i + 1
        transpose1D arr, result
    Else
        i = 0
        flag = False
    End If
End Sub
'//
Sub vidu()
    Dim arr, res
    arr = Array(1, 2, 3)
    transpose1D arr, res
    MsgBox res(2, 1)
End Sub
 
Em muốn làm bài này với 0 vòng lặp.

Chắc đây là 1 ví dụ điển hình của cách giáo dục Việt Nam: Tạo ra những viện sỹ nhưng ra đời thì 90% như gà cônghiệp!
 
Bạn thử:
PHP:
Sub Tam()
   Dim i, a
    a = Split(Range("B1"), ",")
      For i = LBound(a) To UBound(a)
        Cells(3, 2).Offset(i) = a(i)
      Next
End Sub
Dạ thưa, em muốn làm tương tự như #1, tuy nhiên ô chứ dữ liệu ở cột B, Các ô dữ liệu con ở các cột:C,D,E... thì làm thế nào ạ ?
 
Dạ thưa, em muốn làm tương tự như #1, tuy nhiên ô chứ dữ liệu ở cột B, Các ô dữ liệu con ở các cột:C,D,E... thì làm thế nào ạ ?
Bạn thử:
PHP:
Sub Test()
    Dim Cll As Range, St
    For Each Cll In Range("B1", Range("B" & Rows.Count).End(3))
        If InStr(Cll, ",") > 0 Then
            St = Split(Cll, ",")
            Cll.Offset(, 2).Resize(, UBound(St) + 1) = St
        End If
    Next
End Sub
 
Web KT

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

Back
Top Bottom