Mảng trả về hàm VBA

Bài viết này sẽ trình bày cách trả về một Mảng bằng cách sử dụng Hàm VBA.

Mảng trả về hàm VBA

Khi sử dụng các hàm để trả về mảng, tôi thực sự khuyên bạn nên khai báo mảng với kiểu biến thể:

123 Hàm ReturnArray () As VariantChức năng kết thúc

Mảng biến thể dễ làm việc hơn. Kích thước mảng trở nên ít quan tâm hơn.

Ví dụ về mảng trả về hàm

Đây là một ví dụ về một hàm trả về một mảng:

1234567891011121314151617181920212223242526272829 Hàm ReturnArray () As VariantDim tempArr As Variant'Tạo mảng nhiệt độ mớiReDim tempArr (1 đến 3, 1 đến 2)'Chỉ định giá trị mảngtempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrew"tempArr (3, 2) = "Scott"'Mảng đầu raReturnArray = tempArrChức năng kết thúcSub TestTransposeArray ()Dim outputArr As Variant'Chức năng Trả lời Cuộc gọioutputArr = ReturnArray ()'Kiểm tra đầu raMsgBox outputArr (2, 1)Kết thúc Sub

Lưu ý rằng chúng tôi đã khai báo Mảng với kiểu dữ liệu = biến thể để tránh các vấn đề về kích thước.

Ví dụ này lấy một mảng làm đầu vào, chuyển vị mảng và xuất ra mảng đã chuyển vị mới:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Hàm TransposeArray (MyArray As Variant) As VariantDim x As Long, y As LongDim maxX As Long, minX As LongDim maxY As Long, minY As LongDim tempArr As Variant'Lấy trên và dưới giới hạnmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Tạo mảng nhiệt độ mớiReDim tempArr (minX Tới maxX, minY To maxX)'Chuyển đổi mảngĐối với x = minX Đến maxXĐối với y = minY Đến maxYtempArr (y, x) = MyArray (x, y)Tiếp theo yTiếp theo x'Mảng đầu raTransposeArray = tempArrChức năng kết thúcSub TestTransposeArray ()Dim testArr (1 đến 3, 1 đến 2) làm biến thểDim outputArr As Variant'Chỉ định giá trị mảngtestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Chức năng Transpose cuộc gọioutputArr = TransposeArray (testArr)'Kiểm tra đầu raMsgBox outputArr (2, 1)Kết thúc Sub
wave wave wave wave wave