Satura rādītājs
Šī apmācība iemācīs jums, kā transponēt masīvu, izmantojot VBA.
Transponēt masīvu
Šī funkcija transponēs divdimensiju masīvu:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | Funkcija TransposeArray (MyArray As Variant) Kā variantsIzmērs x tik garš, y tik garšDim maxX As Long, minX As LongDim maxY as Long, minY As LongDim tempArr Kā variants'Iegūstiet augšējās un apakšējās robežasmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Izveidojiet jaunu temp masīvuReDim tempArr (minX līdz maxX, minY līdz maxX)'Transponējiet masīvuAttiecībā uz x = minX līdz maxXAttiecībā uz y = minY līdz maxYtempArr (y, x) = MyArray (x, y)Nākamais gNākamais x'Izvades masīvsTransposeArray = tempArrBeigu funkcijaSub TestTransposeArray ()Dim testArr (1 līdz 3, 1 līdz 2) kā variantsDim outputArr As VariantPiešķiriet masīva vērtībastestArr (1, 1) = "Stīvs"testArr (1, 2) = "Džonsons"testArr (2, 1) = "Raiens"testArr (2, 2) = "Džonsons"testArr (3, 1) = "Endrjū"testArr (3, 2) = "Skots"'Zvanu transponēšanas funkcijaoutputArr = TransposeArray (testArr)'Testa izvadeMsgBox izejaArr (2, 1)Beigu apakš |
Lai pārbaudītu šo funkciju, izsauciet procedūru TestTransposeArray: šeit tiek izveidots sākotnējais masīvs testArr un outputArr ir pēdējais transponētais masīvs.
DarblapaFunkcija.Transponēt
Tā vietā, iespējams, vēlēsities transponēt masīvu programmā Excel. Lai to izdarītu, varat izmantot Excel transponēšanas darblapas funkciju.
Šī procedūra transponēs 2D masīvu Excel diapazonā, izmantojot funkciju Transponēt darblapu:
12345678910111213141516171819202122232425 | Sub TestTransposeArray_Worksheetfx ()Dim maxX As Long, minX As LongDim maxY as Long, minY As Long'Izveidojiet masīvu un piešķiriet vērtībasDim MyArray (1 līdz 3, 1 līdz 2) kā variantsMyArray (1, 1) = "Stīvs"MyArray (1, 2) = "Džonsons"MyArray (2, 1) = "Raiens"MyArray (2, 2) = "Džonsons"MyArray (3, 1) = "Endrjū"MyArray (3, 2) = "Skots"'Iegūstiet augšējās un apakšējās robežasmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Transponēt masīvu uz ExcelDiapazons ("a1"). Mainīt izmērus (maxY - minY + 1, maxX - minX + 1). Vērtība = _Application.WorksheetFunction.Transpose (MyArray)Beigu apakš |