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

TienK.Tran

Thành viên mới
Tham gia ngày
5 Tháng chín 2018
Bài viết
7
Được thích
1
Điểm
15
Tuổi
27
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

befaint

|||||||||||||
Tham gia ngày
6 Tháng một 2011
Bài viết
8,626
Được thích
9,813
Điểm
560
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.
 

phulien1902

GPE - My love
Tham gia ngày
6 Tháng bảy 2013
Bài viết
3,100
Được thích
3,675
Điểm
560
Nơi ở
Hải Phòng
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
 

TienK.Tran

Thành viên mới
Tham gia ngày
5 Tháng chín 2018
Bài viết
7
Được thích
1
Điểm
15
Tuổi
27
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 ạ
 
Top Bottom