VBA Transpose Array

Denne vejledning lærer dig, hvordan du transponerer et array ved hjælp af VBA.

Transpose Array

Denne funktion vil omsætte et 2-dimensionelt array:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funktion TransposeArray (MyArray som variant) Som variantDim x Så længe, ​​y Så længeDim maxX As Long, minX As LongDim maxY As Long, minY As LongDim tempArr Som variant'Få øvre og nedre grænsermaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Opret nyt Temp ArrayReDim tempArr (minX Til maxX, minY til maxX)'Transponer ArrayenFor x = minX Til maxXFor y = minY Til maxYtempArr (y, x) = MyArray (x, y)Næste yNæste x'Output ArrayTransposeArray = tempArrAfslut funktionSub TestTransposeArray ()Dim testArr (1 til 3, 1 til 2) som variantDim outputArr som variant'Tildel matrixværdiertestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Call Transpose -funktionoutputArr = TransposeArray (testArr)'Test outputMsgBox outputArr (2, 1)Afslut Sub

For at teste denne funktion skal du kalde proceduren TestTransposeArray: her oprettes en indledende array testArr, og outputArr er den endelige transponerede array.

ArbejdsarkFunktion.Transponere

I stedet vil du måske transponere en matrix til Excel. For at gøre dette kan du bruge Excel Transpose regnearksfunktionen.

Denne procedure transponerer et 2D -array til et Excel -område ved hjælp af funktionen Transponeringsark:

12345678910111213141516171819202122232425 Sub TestTransposeArray_Worksheetfx ()Dim maxX As Long, minX As LongDim maxY As Long, minY As Long'Opret array og tildel værdierDim MyArray (1 til 3, 1 til 2) som variantMyArray (1, 1) = "Steve"MyArray (1, 2) = "Johnson"MyArray (2, 1) = "Ryan"MyArray (2, 2) = "Johnson"MyArray (3, 1) = "Andrew"MyArray (3, 2) = "Scott"'Få øvre og nedre grænsermaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Overfør Array til ExcelOmråde ("a1"). Tilpas størrelse (maxY - minY + 1, maxX - minX + 1). Værdi = _Application.WorksheetFunction.Transpose (MyArray)Afslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave