VBA Transponiraj niz

Ovaj vodič će vas naučiti kako transponirati niz pomoću VBA.

Transponiraj niz

Ova funkcija će transponirati dvodimenzionalni niz:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkcija TransposeArray (MyArray kao varijanta) kao varijantaDim x As Long, y As LongDim maxX koliko dugo, minX jednako dugoDim maxY As Long, minY As LongDim tempArr kao varijanta'Dobijte gornje i donje granicemaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Izradi novi niz tempReDim tempArr (minX do maxX, minY do maxX)»Transponirajte nizZa x = minX do maxXZa y = minY do maxYtempArr (y, x) = MyArray (x, y)Sljedeći ySljedeći x'Izlazni nizTransposeArray = tempArrZavršna funkcijaSub TestTransposeArray ()Zatamnite testArr (1 do 3, 1 do 2) kao varijantuDim outputArr kao varijanta'Dodijelite vrijednosti nizatestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrija"testArr (3, 2) = "Scott"'Funkcija prijenosa pozivaoutputArr = TransposeArray (testArr)'Testni izlazMsgBox outputArr (2, 1)Kraj podm

Da biste testirali ovu funkciju, pozovite proceduru TestTransposeArray: ovdje se stvara početni niz testArr, a outputArr je konačni transponirani niz.

Radni list Funkcija.Prenositi

Umjesto toga, možda ćete htjeti transponirati niz u Excel. Da biste to učinili, možete koristiti funkciju Transponiranje radnog lista programa Excel.

Ovaj postupak će transponirati 2D niz u Excel raspon pomoću funkcije Transponiraj radni list:

12345678910111213141516171819202122232425 Pod TestTransposeArray_Worksheetfx ()Dim maxX koliko dugo, minX jednako dugoDim maxY As Long, minY As Long'Stvorite niz i dodijelite vrijednostiPriguši MyArray (1 do 3, 1 do 2) kao varijantuMyArray (1, 1) = "Steve"MyArray (1, 2) = "Johnson"MyArray (2, 1) = "Ryan"MyArray (2, 2) = "Johnson"MyArray (3, 1) = "Andrija"MyArray (3, 2) = "Scott"'Dobijte gornje i donje granicemaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Prenesite niz u ExcelRaspon ("a1"). Promijenite veličinu (maxY - minY + 1, maxX - minX + 1). Vrijednost = _Application.WorksheetFunction.Transpose (MyArray)Kraj podm

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave