VBA transponēšanas masīvs

Šī 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š

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave