Mảng Transpose VBA

Hướng dẫn này sẽ dạy bạn cách chuyển một mảng bằng VBA.

Mảng Transpose

Hàm này sẽ chuyển đổi một mảng 2 chiều:

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

Để kiểm tra chức năng này, hãy gọi thủ tục TestTransposeArray: ở đây một mảng testArr ban đầu được tạo và outputArr là mảng chuyển vị cuối cùng.

WorksheetFunction.Transpose

Thay vào đó, bạn có thể muốn chuyển một mảng sang Excel. Để làm như vậy, bạn có thể sử dụng Chức năng Bảng tính Transpose trong Excel.

Quy trình này sẽ chuyển một mảng 2D sang một phạm vi Excel bằng cách sử dụng Hàm Transpose Worksheet:

12345678910111213141516171819202122232425 Sub TestTransposeArray_Worksheetfx ()Dim maxX As Long, minX As LongDim maxY As Long, minY As Long'Tạo Mảng và Gán Giá trịDim MyArray (1 đến 3, 1 đến 2) làm biến thểMyArray (1, 1) = "Steve"MyArray (1, 2) = "Johnson"MyArray (2, 1) = "Ryan"MyArray (2, 2) = "Johnson"MyArray (3, 1) = "Andrew"MyArray (3, 2) = "Scott"'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)'Chuyển đổi mảng sang ExcelPhạm vi ("a1"). Thay đổi kích thước (maxY - minY + 1, maxX - minX + 1) .Value = _Application.WorksheetFunction.Transpose (MyArray)Kết thúc Sub

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave