Nhờ các bác viết hộ em đoạn code VBA (2 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

kiendaide1

Thành viên chính thức
Tham gia
3/4/13
Bài viết
93
Được thích
4
Em muốn tách dư liệu trước từng dấu phẩy ở cột C thành từng dong và các dư liệu ở các cột khác tự động copy theo dư liệu đã tách ở cột C tương ứng. em có dư liệu và sheet dư liệu tách mong muốn các bác giúp hộ em với ạ
 

File đính kèm

Em muốn tách dư liệu trước từng dấu phẩy ở cột C thành từng dong và các dư liệu ở các cột khác tự động copy theo dư liệu đã tách ở cột C tương ứng. em có dư liệu và sheet dư liệu tách mong muốn các bác giúp hộ em với ạ
Dùng Split để tách ra nhé
 
Lần chỉnh sửa cuối:
Upvote 0
Em muốn tách dư liệu trước từng dấu phẩy ở cột C thành từng dong và các dư liệu ở các cột khác tự động copy theo dư liệu đã tách ở cột C tương ứng. em có dư liệu và sheet dư liệu tách mong muốn các bác giúp hộ em với ạ
Thử code này
Mã:
Sub Tach()
Dim sArr(), dArr(), i As Long, n As Long, Tach As Variant, k As Long
With Sheets("Sheet1")
    sArr = .Range("A3", .Range("A" & Rows.Count).End(3)).Resize(, 3).Value
End With
ReDim dArr(1 To UBound(sArr) * 100, 1 To 3)
For i = 1 To UBound(sArr)
    If sArr(i, 3) <> Empty Then
        Tach = Split(sArr(i, 3), ",")
        For n = LBound(Tach) To UBound(Tach)
            k = k + 1
            dArr(k, 1) = k
            dArr(k, 2) = sArr(i, 2)
            dArr(k, 3) = CDate(Tach(n))
        Next
    Else
        k = k + 1
        dArr(k, 1) = k
        dArr(k, 2) = sArr(i, 2)
    End If
Next
Sheets("Sheet1").Range("D3").Resize(k, UBound(dArr, 2)) = dArr
End Sub
 
Upvote 0
Thử code này
Mã:
Sub Tach()
Dim sArr(), dArr(), i As Long, n As Long, Tach As Variant, k As Long
With Sheets("Sheet1")
    sArr = .Range("A3", .Range("A" & Rows.Count).End(3)).Resize(, 3).Value
End With
ReDim dArr(1 To UBound(sArr) * 100, 1 To 3)
For i = 1 To UBound(sArr)
    If sArr(i, 3) <> Empty Then
        Tach = Split(sArr(i, 3), ",")
        For n = LBound(Tach) To UBound(Tach)
            k = k + 1
            dArr(k, 1) = k
            dArr(k, 2) = sArr(i, 2)
            dArr(k, 3) = CDate(Tach(n))
        Next
    Else
        k = k + 1
        dArr(k, 1) = k
        dArr(k, 2) = sArr(i, 2)
    End If
Next
Sheets("Sheet1").Range("D3").Resize(k, UBound(dArr, 2)) = dArr
End Sub
Em cam ơn bác ạ
 
Upvote 0
Sao quý vị sốt sắng quá nhỉ?
Thớt đã ở đây 10 năm mà vẫn giữ thói viết "tiêu đề chung chung"
Có lẽ thấy cũng chả sao cho nên ăn quen.
 
Upvote 0
Web KT

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

Back
Top Bottom