VBA Transpose Array

Tämä opetusohjelma opettaa sinulle, kuinka matriisi transponoidaan VBA: n avulla.

Transponoi Array

Tämä toiminto siirtää 2-ulotteisen taulukon:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Toiminto TransposeArray (MyArray As Variant) VarianttinaDim x niin pitkä, y niin pitkäDim maxX niin pitkä, minX niin pitkäDim maxY niin pitkä, minY niin pitkäDim tempArr Vaihtoehtona'Hanki ylä- ja alarajatmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Luo uusi väliaikainen taulukkoReDim tempArr (minX - maxX, minY - maxX)'Transponoi ArrayX = minX - maxXY = minY - maxYtempArr (y, x) = MyArray (x, y)Seuraava ySeuraava x'TulostusjärjestelmäTransposeArray = tempArrLopeta toimintoAlatestiTransposeArray ()Dim testArr (1 - 3, 1 - 2) VaihtoehtonaDim outputArr As Variant'Määritä ryhmäarvottestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Soita Transpose -toimintooutputArr = TransposeArray (testArr)'TestilähtöMsgBox -lähtöArr (2, 1)End Sub

Voit testata tätä toimintoa kutsumalla menettelyä TestTransposeArray: tässä luodaan ensimmäinen taulukko testArr ja outputArr on viimeinen transponoitu taulukko.

Tehtävä.Transpose

Sen sijaan saatat haluta siirtää taulukon Exceliin. Voit tehdä tämän käyttämällä Excel Transpose Worksheet Function -toimintoa.

Tämä menettely siirtää 2D -taulukon Excel -alueelle Transpose Worksheet -toiminnon avulla:

12345678910111213141516171819202122232425 AlatestiTransposeArray_Worksheetfx ()Dim maxX niin pitkä, minX niin pitkäDim maxY niin pitkä, minY niin pitkä'Luo taulukko ja määritä arvotDim MyArray (1 - 3, 1 - 2) vaihtoehtonaMyArray (1, 1) = "Steve"MyArray (1, 2) = "Johnson"MyArray (2, 1) = "Ryan"MyArray (2, 2) = "Johnson"MyArray (3, 1) = "Andrew"MyArray (3, 2) = "Scott"'Hanki ylä- ja alarajatmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Transponoi Array ExceliinAlue ("a1"). Muuta kokoa (maxY - minY + 1, maxX - minX + 1). Arvo = _Application.WorksheetFunction.Transpose (MyArray)End Sub

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave