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.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ị
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
Bố lại đoán mò rồi.Đại khái code như sau:
...
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ờ.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ị
Họ chưa phân biệt được mảng 1 chiều, mảng 2 chiều anh ơ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ờ.
mảng một chiều ( một cột có 1000 phần tử)
Vấn đề khó đoán nhất là ở chỗ dích dắc theo kiểu nào anh nhỉ.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.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ờ.
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.Vấn đề khó đoán nhất là ở chỗ dích dắc theo kiểu nào anh nhỉ.
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.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.
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Đạ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
Sorry Bạn, mình diễn đạt còn thiếuBố 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ờ.
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.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è.