thực hiện tách kí tự

Liên hệ QC

TienK.Tran

Thành viên mới
Tham gia
5/9/18
Bài viết
7
Được thích
1
em phải thực hiện công việc này lặp lại nhiều lần, vì muốn nhẹ nhàng nên nghĩ ra ý định dùng macro nhưng viết hoài không được, cả nhà thảo luận giúp em nhé......công việc như trong file đính kèm, cụ thể như sau: một sản phẩm được đặt tại 2 vị trí, 2 vị trí này được nhập vào cùng một ô trong excel và cách nhau bằng dấu phẩy (,), yêu cầu đặt ra là phải tách 2 vị trí này ra thành 2 ô riêng biệt ở 2 hàng khác nhau.....
cám ơn mọi người ạ
 

File đính kèm

  • tách kí tự thành hàng.xlsx
    9.8 KB · Đọc: 62
Thảo luận hay làm giúp?
Thảo luận thì đây:
- Sao bạn không gửi những cái đã "viết hoài không được" lên đây để chỉnh tiếp?
- Thử:
Chép vùng dữ liệu cột A:B vào một mảng arr1, khai báo một biến mảng arr2(n-hàng, 2-cột)
Vòng lặp For-Next duyệt các phần tử thuộc cột A, xét phần tử thuộc cột B tương ứng, dùng hàn Split() chia phần tử này được một mảng các phần tử phân cách bởi dấy phẩy.
Gán các phần tử vừa tách được vào cột 2 của arr2, ứng với phần từ thuộc cột A thì gán vào cột 1 của arr2.
Chép mảng arr2 xuống bảng tính.
 
Upvote 0
em phải thực hiện công việc này lặp lại nhiều lần, vì muốn nhẹ nhàng nên nghĩ ra ý định dùng macro nhưng viết hoài không được, cả nhà thảo luận giúp em nhé......công việc như trong file đính kèm, cụ thể như sau: một sản phẩm được đặt tại 2 vị trí, 2 vị trí này được nhập vào cùng một ô trong excel và cách nhau bằng dấu phẩy (,), yêu cầu đặt ra là phải tách 2 vị trí này ra thành 2 ô riêng biệt ở 2 hàng khác nhau.....
cám ơn mọi người ạ
Thử:
PHP:
Sub abc()
    Dim i&, j&, k&, a, b, sp
    ReDim b(1 To Rows.Count, 1 To 2)
    With Sheet1
        a = .Range("A1", .Cells(Rows.Count, "B").End(3))
        For i = 1 To UBound(a)
            sp = Split(a(i, 2), ",")
            For j = LBound(sp) To UBound(sp)
                k = k + 1
                b(k, 1) = a(i, 1)
                b(k, 2) = sp(j)
            Next
        Next
    End With
    With Sheet1.Range("I1").Resize(k, UBound(b, 2))
        .Value = b
        .Borders.LineStyle = xlContinuous
    End With
End Sub
 
Upvote 0
Cái này không biết là thảo luận hay là giúp.
 
Upvote 0
Thử:
PHP:
Sub abc()
    Dim i&, j&, k&, a, b, sp
    ReDim b(1 To Rows.Count, 1 To 2)
    With Sheet1
        a = .Range("A1", .Cells(Rows.Count, "B").End(3))
        For i = 1 To UBound(a)
            sp = Split(a(i, 2), ",")
            For j = LBound(sp) To UBound(sp)
                k = k + 1
                b(k, 1) = a(i, 1)
                b(k, 2) = sp(j)
            Next
        Next
    End With
    With Sheet1.Range("I1").Resize(k, UBound(b, 2))
        .Value = b
        .Borders.LineStyle = xlContinuous
    End With
End Sub
cám ơn bác nhiều ạ
 
Upvote 0
Web KT
Back
Top Bottom