Làm sao chuyển 1 mảng bất kỳ thành mảng 1 chiều

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,952
Tôi có 1 mảng bất kỳ (1 chiều hoặc 2 chiều). Tôi muốn dùng code xây dựng 1 hàm tự tạo sao cho giá trị trả về của nó là MẢNG 1 CHIỀU
Đại khái cú pháp hàm như sau:
PHP:
Function TransferHArray(SrcArray)
...
...
End Function
Với SrcArray là mảng bất kỳ nhưng kết quả TransferHArray phải luôn là mảng 1 chiều
Tưởng đơn giản nhưng loay hoay mãi không xong!
Xin nhờ các cao thủ trợ giúp!
(Đúng ra thì SrcArray phải là mảng bao nhiêu chiều tùy ý, nhưng tạm thời tôi chỉ cần giới hạn đến 2 chiều là đủ)
 
Tôi có 1 mảng bất kỳ (1 chiều hoặc 2 chiều). Tôi muốn dùng code xây dựng 1 hàm tự tạo sao cho giá trị trả về của nó là MẢNG 1 CHIỀU
Đại khái cú pháp hàm như sau:
PHP:
Function TransferHArray(SrcArray)
...
...
End Function
Với SrcArray là mảng bất kỳ nhưng kết quả TransferHArray phải luôn là mảng 1 chiều
Tưởng đơn giản nhưng loay hoay mãi không xong!
Xin nhờ các cao thủ trợ giúp!
(Đúng ra thì SrcArray phải là mảng bao nhiêu chiều tùy ý, nhưng tạm thời tôi chỉ cần giới hạn đến 2 chiều là đủ)
Nếu đơn thuần chỉ là dồn hết nó vào 1 mảng 1 chiều thì bác dùng thử hàm này xem sao.
Mã:
Function TransferHArray(SrcArray)
    Dim retArray()
    Dim item
    Dim i As Integer
    i = 0
    For Each item In SrcArray
        i = i + 1
        ReDim Preserve retArray(1 To i)
        retArray(i) = item
    Next
    TransferHArray = retArray
End Function
 
Upvote 0
Bác tham khảo cái này, và đây nữa.

Trước đây em cũng thường sử dụng các hàm này, rồi chỉnh sửa lại tí.

VBAVN
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Ẹc... Ẹc... Chưa xem hướng dẩn thì thấy là.. KHÓ, xem rồi lại thấy nó.. QUÁ DỂ
Tại sao thế nhỉ? Có lẽ vì mình NGU!!!
-----------------------------------------
Sở dỉ tôi có nhu cầu này là vì 1 vài hàm trong VBA chỉ hoạt động được với mảng 1 chiều (ví dụ như hàm Join)
------------------------------------------
Cảm ơn rollover79vbavn
(Chỉ bấm THANKS thấy vẫn chưa đủ)
 
Upvote 0
Các Huynh cho muội hỏi mảng 1 chiều và 2 chiều là gì vây? có thể giải thích theo kiểu chia kẹo cho muội không?

Cám ơn nha
 
Upvote 0
Các Huynh cho muội hỏi mảng 1 chiều và 2 chiều là gì vây? có thể giải thích theo kiểu chia kẹo cho muội không?

Cám ơn nha
Mường tượng thế này cho dễ hiểu (dù không chuẩn lắm)
- Mảng 1 chiều cũng gần giống như vùng dữ liệu trên Excel chỉ có 1 dòng và nhiều cột hoặc 1 cột và nhiều dòng (gần giống thôi nha)
- Mảng 2 chiều cũng gần giống như 1 vùng dữ liệu trên Excel gồm nhiều dòng và nhiều cột
Truy xuất mảng 2 chiều cũng gần giống như cách truy xuất của hàm INDEX
INDEX(Bang, r, c) sẽ cho kết quả dữ liệu tại dòng r, cột c của Bang
Arr(r, c) sẽ cho kết quả là giá trị tại vị trí r của chiều 1 và vị trí c của chiều thứ 2 của mảng Arr
-------------
Mảng 3 chiều bạn có thể hình dung như 1 hình khối, như 1 biểu đồ 3 chiều và đương nhiên khi truy xuất nó, ta cần 3 giá trị chỉ thị vị trí x, y, z
vân.. vân...
 
Upvote 0
PHP:
Sub Test()
  Dim sArray
  sArray = Range("A1:A10").Value
   
End Sub

Thưa thày em thấy cái này nhiều dòng và 1 cột nó cũng là mảng 2 chiều đấy chứ ah?
 
Upvote 0
PHP:
Sub Test()
  Dim sArray
  sArray = Range("A1:A10").Value
   
End Sub

Thưa thày em thấy cái này nhiều dòng và 1 cột nó cũng là mảng 2 chiều đấy chứ ah?
Đương nhiên rồi!
Như đã nói, bất cứ mảng nào được tạo thành từ Range đều là mảng 2 chiều, bất kể Range ấy là 1 cột nhiều dòng hay 1 dòng nhiều cột
(tại ngày xưa NGU nên... nói bậy)
Ẹc... Ẹc...
 
Upvote 0
Web KT

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

Đếm ngược thời gian

000
Ngày
00
Giờ
00
phút
00
giây
Back
Top Bottom