Chuyển mảng 1 chiều thành mảng 2 chiều trong vba

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

longloc29

Thành viên mới
Tham gia
6/5/12
Bài viết
5
Được thích
1
Xin các Anh/Chị giúp em code VBA chuyển mảng một chiều ( một cột có 1000 phần tử) thành mảng hai chiều ( có 50 hàng và 20 cột) ạ, các phần tử lấy vào theo chiều zích zắc từ trên xuống dưới. Em cảm ơn các Anh/Chị
 
Xin các Anh/Chị giúp em code VBA chuyển mảng một chiều ( một cột có 1000 phần tử) thành mảng hai chiều ( có 50 hàng và 20 cột) ạ, các phần tử lấy vào theo chiều zích zắc từ trên xuống dưới. Em cảm ơn các Anh/Chị
Nên có file ví dụ để người giúp còn chạy thử mà không phải tự tạo file thì hơn.
 
Đại khái code như sau:
Mã:
Sub DoIt()
Dim SArr(), reArr(1 To 50, 1 To 20)
SArr = Range("A1:A1000").Value
    k = 1
    j = 1
For i = 1 To 1000
    reArr(k, j) = SArr(i, 1)
    j = IIf(j < 20, j + 1, 1)
    If j = 1 Then k = k + 1
Next
Cells(1, 3).Resize(50, 20).Value = reArr
End Sub
 
Đại khái code như sau:
...
Bố lại đoán mò rồi.

Xin các Anh/Chị giúp em code VBA chuyển mảng một chiều ( một cột có 1000 phần tử) thành mảng hai chiều ( có 50 hàng và 20 cột) ạ, các phần tử lấy vào theo chiều zích zắc từ trên xuống dưới. Em cảm ơn các Anh/Chị
Thớt đã nói trên xuống dưới là theo dòng hay theo cột đâu? Theo bề nào cũng là zích zắc mờ.
 
Bố lại đoán mò rồi.
Thớt đã nói trên xuống dưới là theo dòng hay theo cột đâu? Theo bề nào cũng là zích zắc mờ.
Cho nên tôi chỉ cho code "đại khái". Phải chạy, muốn chạy phải có đầu vào thế vào chỗ A1:A1000, phải kiểm soát được vị trí đầu ra.
Xem kết quả, muốn zích zắc kiểu khác thì tự sửa vì cũng không khó gì.
Ngoài ra, con 1000, con 50, con 20 là 3 con đẹp như mơ. Nếu đời không như là mơ lại còn phải tính lại cả 3 con.
Vấn đề khó đoán nhất là ở chỗ dích dắc theo kiểu nào anh nhỉ.
Họ ghi zích zắc từ trên xuống dưới, thì tôi cho từ trên xuống dưới. Theo chiều 2 sẽ là zích zắc từ trái qua phải.
 
Lần chỉnh sửa cuối:
Nên có file ví dụ để người giúp còn chạy thử mà không phải tự tạo file thì hơn.
Sorry Bạn, do mình không có máy tính tại nhà phải dùng điện thoại,mà máy tính cty thì không online được.
Bài đã được tự động gộp:

Đại khái code như sau:
Mã:
Sub DoIt()
Dim SArr(), reArr(1 To 50, 1 To 20)
SArr = Range("A1:A1000").Value
    k = 1
    j = 1
For i = 1 To 1000
    reArr(k, j) = SArr(i, 1)
    j = IIf(j < 20, j + 1, 1)
    If j = 1 Then k = k + 1
Next
Cells(1, 3).Resize(50, 20).Value = reArr
End Sub
Cám ơn Bạn rất nhiều,mình chạy code bạn đã làm được rồi.Thanks Bạn nhiều
Bài đã được tự động gộp:

Bố lại đoán mò rồi.


Thớt đã nói trên xuống dưới là theo dòng hay theo cột đâu? Theo bề nào cũng là zích zắc mờ.
Sorry Bạn, mình diễn đạt còn thiếu
 
Lần chỉnh sửa cuối:
Vậy túm cái váy xèo lại rằng: Cần sửa tiêu đề, nội dung yêu cầu lại là chuyển bảng 1 cột thành bảng nhiều cột.

Chứ cướp đâu ra mảng 1 chiều nào ở đây. Khi chưa nắm rõ bản chất, từ ngữ chuyên môn thì không nên tùy ý dùng dẫn đến sai bét nhè.
 
Vậy túm cái váy xèo lại rằng: Cần sửa tiêu đề, nội dung yêu cầu lại là chuyển bảng 1 cột thành bảng nhiều cột.

Chứ cướp đâu ra mảng 1 chiều nào ở đây. Khi chưa nắm rõ bản chất, từ ngữ chuyên môn thì không nên tùy ý dùng dẫn đến sai bét nhè.
Thì 1 cột lấy vào mảng nó vẫn ra mảng 2 chiều mà anh.Chắc bạn mới học nên không phân biệt được.
 
Vậy túm cái váy xèo lại rằng: Cần sửa tiêu đề, nội dung yêu cầu lại là chuyển bảng 1 cột thành bảng nhiều cột.

Chứ cướp đâu ra mảng 1 chiều nào ở đây. Khi chưa nắm rõ bản chất, từ ngữ chuyên môn thì không nên tùy ý dùng dẫn đến sai bét nhè.
Còn phya cha nội ơi.
Gặp nhằm Tây con, quên tiếng Việt rồi.
 
Web KT

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

Back
Top Bottom