hei kirjoitin alla olevan koodin kääntääkseni matriisin sen olan yli. olisiko jollakulla ideoita siihen miten tämän voisi tehdä helpommin?
Private Sub MatrixTranspose()
Dim Kolumni As Integer
Dim rivi As Integer
Dim RiviIndexi, KolumniIndexi As Integer
kolumni = Worksheets("sjukhus").Range("XFD1").End(xlToLeft).Column
rivi = Worksheets("sjukhus").Range("A1048576").End(xlUp).row
Dim kustannusArray() As Variant
ReDim KustannusArray(rivi, kolumni)
Dim Inversarray() As Variant
ReDim Inversarray(kolumni, rivi)
For RiviIndexi = 1 To rivi
For kolumniIndexi = 1 To kolumni
KustannusArray(riviIndexi - 1, kolumniIndexi - 1) = Cells(riviIndexi, kolumniIndexi)
Worksheets("sjukhus").Cells(kolumniIndexi 10, riviIndexi).Value = KustannusArray(riviIndex - 1, kolumniIndex - 1)
Next kolumniIndexi
Next riviIndexi
End Sub
VBA ja matriisin kääntäminen
Tsitsu
1
648
Vastaukset 1
- ustisT
Tuolla saa transponoitua valitun alueen=)
Sub Transponoi()
Dim alue As Range
Dim rivit As Integer
Dim sarakkeet As Integer
Dim arvo() As Single
Set alue = Selection
rivit = alue.Rows.Count - 1
sarakkeet = alue.Columns.Count - 1
ReDim arvo(rivit, sarakkeet)
For j = 0 To sarakkeet
For i = 0 To rivit
arvo(i, j) = alue(1, 1).Offset(i, j).Value
Next
Next
alue.ClearContents
For j = 0 To sarakkeet
For i = 0 To rivit
alue(1, 1).Offset(j, i).Value = arvo(i, j)
Next
Next
End Sub
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Pyhäjärvi syvällä kusessa
Pyhäjärvi ei tule selviämään millään tästä alhosta. Ollaan aivan liian syvällä. https://www.mtvuutiset.fi/artikkeli/pyha1371303- 1481061
Miten voi sinun
tunteet yhtäkkiä kuolla kuin napista painamalla? Et enää vilkaisekaan minuun päin vaan jos vahingossa näet minut käännät67835PYHÄJÄRVEN KAUPUNKI VALTIOVARAINMINESTERIÖN ARVIOINTIMENETTELYYN..TE
...siinä se nyt on, mitä tässä enää vikistään. Uutiset Yle, 14.8. Klo 20.30, ei tunnu mukavalta.51648- 60641
Missä vaiheessa
Unohdit minut? Onko sinulla oikeasti mies jota rakastat? Tiedän että möhlin ja odotin liikaa. Ei tarvitse vastata jos et33531- 30523
- 39507
- 63503
- 16487