VBA ülekandemassiiv

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

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave