Cần Tách chuỗi trong các ô thành các dòng và copy sang sheet khác (1 người xem)

Liên hệ QC

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

Nguyễn Hồng Quang

Thành viên GPE Hà Nội
Tham gia
8/6/07
Bài viết
1,203
Được thích
877
Giới tính
Nam
Nghề nghiệp
Kế toán
Em chào các anh, các chị trên GPE
Em cần tách chuỗi trong các ô thành các dòng và copy sang sheet khác
Mọi chi tiết em đã trình bày trong file
Xin gửi kèm file mong mọi người giúp đỡ %#^#$
 

File đính kèm

Em chào các anh, các chị trên GPE
Em cần tách chuỗi trong các ô thành các dòng và copy sang sheet khác
Mọi chi tiết em đã trình bày trong file
Xin gửi kèm file mong mọi người giúp đỡ %#^#$
Bạn thử với:
PHP:
Sub abc()
    Dim c As Range, a
    Dim LR%, i%, j% 
     LR = Sheets("Tong hop").Range("B" & Rows.Count).End(3).Row
      i = 3
  With Sheets("Tong hop")
    For Each c In Range("B3:B" & LR)
          a = Split(c.Offset(0, 5).Value, ";")
         For j = 0 To UBound(a)
            Range("L" & j + i).Value = c.Value 
           Range("M" & j + i).Value = c.Offset(0, 1).Value
            Range("N" & j + i).Value = c.Offset(0, 2).Value
            Range("O" & j + i).Value = c.Offset(0, 3).Value
            Range("P" & j + i).Value = c.Offset(0, 4).Value 
           Range("Q" & j + i).Value = Trim(a(j))
            Range("R" & j + i).Value = c.Offset(0, 6).Value
            Range("S" & j + i).Value = c.Offset(0, 7).Value
            Range("T" & j + i).Value = c.Offset(0, 8).Value 
         Next j
        i = i + j 
  Next
   End With
End Sub
 
Hoặc:
PHP:
Sub abc_New()
    Dim a, i%, j%, k&, Sp
    a = Range("B3:J13").Value
    k = 2
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        For i = 1 To UBound(a, 1)
            Sp = Split(a(i, 6), ";")
            For j = 0 To UBound(Sp)
                .Cells(k, 1) = a(i, 1)
                .Cells(k, 2) = a(i, 2)
                .Cells(k, 3) = a(i, 3)
                .Cells(k, 4) = a(i, 4)
                .Cells(k, 5) = a(i, 5)
                .Cells(k, 6) = Sp(j)
                .Cells(k, 7) = a(i, 7)
                .Cells(k, 8) = a(i, 8)
                .Cells(k, 9) = a(i, 9)
                k = k + 1
            Next
        Next
    End With
    Application.ScreenUpdating = True
End Sub
 
Hoặc:
PHP:
Sub abc_New()
    Dim a, i%, j%, k&, Sp
    a = Range("B3:J13").Value
    k = 2
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        For i = 1 To UBound(a, 1)
            Sp = Split(a(i, 6), ";")
            For j = 0 To UBound(Sp)
                .Cells(k, 1) = a(i, 1)
                .Cells(k, 2) = a(i, 2)
                .Cells(k, 3) = a(i, 3)
                .Cells(k, 4) = a(i, 4)
                .Cells(k, 5) = a(i, 5)
                .Cells(k, 6) = Sp(j)
                .Cells(k, 7) = a(i, 7)
                .Cells(k, 8) = a(i, 8)
                .Cells(k, 9) = a(i, 9)
                k = k + 1
            Next
        Next
    End With
    Application.ScreenUpdating = True
End Sub
Cảm ơn bạn đã giúp đỡ.
nhưng mình thấy code của bạn nó ko cho ra kết quả gì trên sheet 1 cả.
 

File đính kèm

Em chào các anh, các chị trên GPE
Em cần tách chuỗi trong các ô thành các dòng và copy sang sheet khác
Mọi chi tiết em đã trình bày trong file
Xin gửi kèm file mong mọi người giúp đỡ %#^#$
chạy thử code
Mã:
Sub GPE()
  Dim Darr As Variant, Arr As Variant, Spl As Variant, i, j, k
  Darr = Sheets("Tong hop").Range("B3:J" & Sheets("Tong hop").Range("B" & Rows.Count).End(xlUp).Row).Value
  ReDim Arr(1 To 100000, 1 To UBound(Darr, 2))
  For i = 1 To UBound(Darr, 1)
    If Darr(i, 6) <> "" Then
      Spl = Split(Replace(Darr(i, 6), Chr(10), ""), ";")
      For s = 0 To UBound(Spl)
        k = k + 1
        For j = 1 To UBound(Darr, 2)
          If j = 6 Then Arr(k, 6) = Spl(s) Else Arr(k, j) = Darr(i, j)
        Next j
      Next
    End If
  Next
  Sheets("Sheet1").Range("A2").Resize(k, 9) = Arr
End Sub
 
Kết quả ra đúng như mong muốn
Cảm ơn bạn HieuCD đã giúp đỡ nhé
Chúc bạn một ngày vui
 
Bạn đứng tại Sheets("Tong hop") và bấm nút( Hình mặt cười) rồi xem kết quả nhé.
Có File đính kèm để bạn xem.
đúng là hình mặt cười. Kết quả đúng như mình mong muốn :-=
Cảm ơn bạn Phulien1902 đã tận tình giúp đỡ. Chúc bạn một ngày vui
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom