Nhờ các bác viết hộ em đoạn code VBA

Liên hệ QC
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

  • VIDU.xlsx
    14.6 KB · Đọc: 16
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