VBA & Excel: Symetricka matica

Programovacie jazyky, rady, poradňa...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

VBA & Excel: Symetricka matica

Príspevok od používateľa Mek »

Zdravim,
mam v exceli maticu 70x70, ktora obsahuje nejake hodnoty a chcem ju spravit symetrickou podla diagonaly tak, ze hodnoty nad diagonalou sa skopcia do hodnot pod diagonalou. Googlil som a nasiel som jedinu uzitocnu vec, maly VBA skriptik, ktory ale akosi nefunguje ako ma - nerobi nic.
Sub Build_Matrix()
'Initial Size of Matrix
Size = 70
'Initialize Loop Counter
Cntr = 1
'Initial Counters for Original Data
OrgCol = 2
OrgRow = 3
'Copy Original Data Into Blank Cells
For NewRow = Size To 2 Step -1
'Reduce Column Count For Each Row
Cntr = Cntr + 1
For NewCol = Size To Cntr Step -1
Cells(NewRow, NewCol) = _
Cells(OrgRow, OrgCol)
OrgCol = OrgCol + 1
Next
OrgRow = OrgRow + 1
'Reset Column Counter
OrgCol = 1
Next
End Sub
VBA vidim prvy krat ale snad je tu niekto zbehlejsi, kto by vedel pomoct.
Moja matica ma prvy prvok v druhom stlpci a tretom riadku, to som v skripte nastavil (plus velkost matice). Vie niekto poradit, pls?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

Sub Build_Matrix()
'Initial Size of Matrix
Size = 70
FirstCol = 3
FirstRow = 3
'Initialize Loop Counter
OrgCol = FirstCol
OrgRow = FirstRow
'Copy Original Data Into Blank Cells
For NewRow = FirstCol To FirstCol + Size Step 1
    'Reduce Column Count For Each Row
    For NewCol = FirstRow To FirstRow + Size Step 1
        Cells(NewCol, NewRow) = _
        Cells(NewRow, NewCol)
        OrgCol = OrgCol + 1
    Next
    OrgRow = OrgRow + 1
    'Reset Column Counter
    OrgCol = 1
Next
End Sub
zmeň si tam iba FirstCol a FirstRow, ale musia byť rovnaké. Keď teda píšeš že začína na treťom riadku a druhom stlpci, pridaj si jeden stlpec na začiatok a po vygenerovaní matice ho zmaž. Ak ti takéto riešenie s tým stlpcom nevyhovuje, bude sa to dať prerobiť ale je s tým viac práce a to teraz nestíham
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

fiiiha diky ti, vskutku to fungovalo :)
Napísať odpoveď