Lang L: none (table-of-contents)
See õpetus õpetab teile, kuidas massiivi VBA abil üle võtta.
Massiivi ülevõtmine
See funktsioon edastab kahemõõtmelise massiivi:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | Funktsioon TransposeArray (MyArray As Variant) VariantinaDim x nii pikk, y kui pikkDim maxX nii pikk, minX nii pikkDim maxY Long, minY As LongDim tempArr Variandina'Hangi ülemised ja alumised piiridmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Loo uus temp -massiivReDim tempArr (minX kuni maxX, minY kuni maxX)'Võta massiiv üleX = minX kuni maxXY = minY kuni maxYtempArr (y, x) = MyArray (x, y)Järgmine yJärgmine x'VäljundmassiivTransposeArray = tempArrLõppfunktsioonAlamkatseTransposeArray ()Dim testArr (1 kuni 3, 1 kuni 2) VariandinaDim outputArr As Variant'Määrake massiiväärtusedtestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"„Kõne ülevõtmise funktsioonoutputArr = TransposeArray (testArr)'Testi väljundMSgBoxi väljundArr (2, 1)End Sub |
Selle funktsiooni testimiseks helistage protseduurile TestTransposeArray: siin luuakse esialgne massiiv testArr ja outputArr on viimane ülevõetud massiiv.
TöölehtFunktsioon. Ülekanne
Selle asemel võiksite massiivi Excelisse üle kanda. Selleks saate kasutada Exceli töölehe ülevõtmise funktsiooni.
See protseduur teisendab 2D -massiivi Exceli vahemikku, kasutades funktsiooni Transpose Worksheet:
12345678910111213141516171819202122232425 | Sub TestTransposeArray_Worksheetfx ()Dim maxX nii pikk, minX nii pikkDim maxY Long, minY As Long"Looge massiiv ja määrake väärtusedDim MyArray (1 kuni 3, 1 kuni 2) variandinaMyArray (1, 1) = "Steve"MyArray (1, 2) = "Johnson"MyArray (2, 1) = "Ryan"MyArray (2, 2) = "Johnson"MyArray (3, 1) = "Andrew"MyArray (3, 2) = "Scott"'Hangi ülemised ja alumised piiridmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Transponeerige massiiv ExcelisseVahemik ("a1"). Suuruse muutmine (maxY - minY + 1, maxX - minX + 1) .Väärtus = _Application.WorksheetFunction.Transpose (MyArray)End Sub |