Cần giúp đỡ về code vba chuyển data từ 1 ô chứa nhiều dữ liệu sang từng mục đơn lẻ

Liên hệ QC

fukuchan

Thành viên mới
Tham gia
8/8/17
Bài viết
7
Được thích
0
Chào mọi người, mình có 1 file excel như tài liệu đính kèm. Mình muốn chuyển đổi nội dung từ sheet Data sang sheet Input theo từng mục tương ứng nhưng do có nhiều giá trị trong cùng 1 ô dữ liệu nên mình không biết sử dụng code vba như thế nào. Mong các bạn giúp đỡ.
Vì lần đầu mình đăng bài nên nếu có sai sót về nội dung hoặc sai vị trí đăng bài thì mong mọi người bỏ qua ^^
 

File đính kèm

Chào mọi người, mình có 1 file excel như tài liệu đính kèm. Mình muốn chuyển đổi nội dung từ sheet Data sang sheet Input theo từng mục tương ứng nhưng do có nhiều giá trị trong cùng 1 ô dữ liệu nên mình không biết sử dụng code vba như thế nào. Mong các bạn giúp đỡ.
Vì lần đầu mình đăng bài nên nếu có sai sót về nội dung hoặc sai vị trí đăng bài thì mong mọi người bỏ qua ^^
Sau khi chạy code, sheets input sẽ như thế nào?
 
Upvote 0
Đầu vào 1,15 tỷ sao đầu ra còn 1,15 ?
Đầu vào 45m2 sao đầu ra còn 45 ?
 
Upvote 0
Thử:
Mã:
Public Sub Test()
Dim i, lr, k As Long
Dim a, b
With Sheets("data")
    lr = .Range("D" & .Rows.Count).End(xlUp).Row
    If lr < 5 Then Exit Sub
    a = .Range("A5:E" & lr).Value   
End With
    ReDim b(1 To lr \ 4, 1 To 7)
    lr = lr - 5
    For i = 1 To lr Step 4
        k = k + 1
        b(k, 1) = a(i, 1)
        b(k, 2) = a(i, 4)
        b(k, 3) = a(i + 2, 4)
        b(k, 4) = a(i + 1, 4)
        b(k, 5) = a(i + 2, 3)
        b(k, 6) = a(i + 3, 4)
        b(k, 7) = a(i, 5)
    Next
Sheets("input").Range("A2").Resize(k, 7) = b
   
End Sub
 
Upvote 0
Thử:
Mã:
Public Sub Test()
Dim i, lr, k As Long
Dim a, b
With Sheets("data")
    lr = .Range("D" & .Rows.Count).End(xlUp).Row
    If lr < 5 Then Exit Sub
    a = .Range("A5:E" & lr).Value  
End With
    ReDim b(1 To lr \ 4, 1 To 7)
    lr = lr - 5
    For i = 1 To lr Step 4
        k = k + 1
        b(k, 1) = a(i, 1)
        b(k, 2) = a(i, 4)
        b(k, 3) = a(i + 2, 4)
        b(k, 4) = a(i + 1, 4)
        b(k, 5) = a(i + 2, 3)
        b(k, 6) = a(i + 3, 4)
        b(k, 7) = a(i, 5)
    Next
Sheets("input").Range("A2").Resize(k, 7) = b
  
End Sub
cảm ơn bạn rất nhiều, đúng ý của mình rồi ạ
 
Upvote 0
Web KT

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

Back
Top Bottom