Transpozičné pole VBA

Tento tutoriál vás naučí, ako transponovať pole pomocou VBA.

Transponovať pole

Táto funkcia transponuje dvojrozmerné pole:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkcia TransposeArray (MyArray As Variant) Ako VariantDim x ako dlhé, y tak dlhéDimXX ako dlhý, minX tak dlhýDim maxY Ako dlho, minY ako dlhoDim tempArr As Variant„Získajte horné a dolné hranicemaxX = UBound (MyArray, 1)minX = LViazané (MyArray, 1)maxY = UBound (MyArray, 2)minY = LViazané (MyArray, 2)„Vytvorte nové dočasné poleReDim tempArr (minX až maxX, minY až maxX)„Transponujte polePre x = minX až maxXPre y = minY až maxYtempArr (y, x) = MyArray (x, y)Ďalšie yDalej x„Výstupné poleTransposeArray = tempArrKoncová funkciaSub TestTransposeArray ()Dim testArr (1 až 3, 1 až 2) ako variantDim outputArr As Variant'Priraďte hodnoty poľatestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Funkcia transpozície hovoruoutputArr = TransposeArray (testArr)„Testovací výstupMsgBox outputArr (2, 1)Koniec pod

Na otestovanie tejto funkcie zavolajte postup TestTransposeArray: tu sa vytvorí počiatočné pole testArr a outputArr je konečné transponované pole.

Pracovný listFunkcia. Transponovať

Namiesto toho možno budete chcieť transponovať pole do Excelu. Na tento účel môžete použiť funkciu transpozičného listu programu Excel.

Tento postup transponuje 2D pole do rozsahu Excelu pomocou funkcie transpozície pracovného hárka:

12345678910111213141516171819202122232425 Sub TestTransposeArray_Worksheetfx ()DimXX ako dlhý, minX tak dlhýDim maxY Ako dlho, minY ako dlho„Vytvorte pole a priraďte hodnotyDim MyArray (1 až 3, 1 až 2) ako variantMyArray (1, 1) = "Steve"MyArray (1, 2) = "Johnson"MyArray (2, 1) = "Ryan"MyArray (2, 2) = "Johnson"MyArray (3, 1) = "Andrew"MyArray (3, 2) = "Scott"„Získajte horné a dolné hranicemaxX = UBound (MyArray, 1)minX = LViazané (MyArray, 1)maxY = UBound (MyArray, 2)minY = LViazané (MyArray, 2)„Transponujte pole do ExceluRozsah („a1“). Zmeňte veľkosť (maxY - minY + 1, maxX - minX + 1). Hodnota = _Application.WorksheetFunction.Transpose (MyArray)Koniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave