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
- 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
Haluan sinut, kuuletko minua.
Haluan sinut. Toivon, että voisimme olla yhdessä. Mietin pystynkö täyttämään toiveesi, olemaan arvoisesi. Voisitko saad871400- 52997
Alastomat miehet seksikeinussa lasten nähden PRIDEssä!
https://www.iltalehti.fi/kotimaa/a/adf62289-a0b6-4b4c-9672-9e19c01beb51 Eikö nyt muka mene jo aivan liian pitkälle että374834- 153804
Anteeksipyynnöstä
Uskotko anteeksipyynnön voimaan? Mikä tekee anteeksipyynnöstä vaikeaa? Onko se mielestäsi joskus turhaa, joko pyytäjän124717- 55709
- 51658
Naiselle Kuuleppa Tämä
Tämä ei ole mikään vitsi. Minulla on ikävä sinua nainen! Naiselle mieheltä38635- 76622
- 57611