Hei, yritän tehdä tilastointiohjelmaa, jossa käyttäjä syöttää textboxeihin arvoja. Yhdelle riville esim viisi eri arvoa, ja rivejä on vaikka 25.
Olen nimennyt Textbox:t seuraavasti: rivi1s1, rivi1s2, rivi1s3...Rivi2s1,Rivi2s2...Rivi25s5.
Miten saisin arvot helposti luettua (25, 5) taulukoon, vaikka kaksinkertaisella for-loopilla. Vai onko noi textboxit jotenkin jo taulukoitu, että niiden arvoihin pääsee suoraan kiinni? Yksitellen noiden arvojen lukeminen, kun tuntuu jotenkin turhan työläältä, viissiin syntaksi on mulle se joka tökkii. Siis jotenkin seuraavasti:
Dim taulukko(24, 4) Dim i, j As Integer for i = 0 to 24 for j = 0 to 4 taulukko(i, j) = Rivi(i+1)s(j+1).text ' siis miten täsä rivi1s1.text ... rivi25s25 next next
Vai onko siis olemassa jotain parempaa tapaa -kiitos!
Ok, sovelsin, mutta siinä on pieni ogelma, jos teen asian seuraavasti:
Public Sub RivitTaulukkoon() Dim st As String Dim i, j As Integer i = 0 j = 0 For Each MyObject As Object In Me.Controls st = CStr(MyObject.name) If st.IndexOf("Rivi" + CStr(i) + "s" + CStr(j)) Then 'virheenkäsittely tähän, esim jos null laskentaTaulu(i, j) = CInt(MyObject.text) End If Next End Sub
Mistä muuten puuttuu i:n ja j:n kasvattaminen kokonaan, ja jos pistän niille molemmille for loopit ympärille, niin se käy läpi koko me.controls taulukon joka kerta uudelleen!
Tämän voi varmaan korjata, mutta ihan vaan koska haluaisin tietää, ja koska varsinkin arvoja asettaessa se olisi hurjasti kätevämpää - takaisin alkuperäiseen ongelmaan ytimeen. Miten voin liittää for loopissa juoksevan indexin i muuttujan nimeen, jotta muutan oikean texboxin arvoa?
Toivottavasti jaksatte vielä vastata aloittelijalle, ja kiitos edellisetä, se auttoi minua ymmärtämään paljon.
Toivottavasti nyt ymmärsin ongelmasi oikein:
Pistä noiden i:n ja j:n kasvatus tuon loopin sisään.
Ja tuo toinen ongelma:
Yrität siis liittää numeerisen muuttujan i:n merkkijonoon?
Str-funktiolla (toivottavasti löytyy .netistäkin) voit muuntaa numeerisen muuttujan merkkijonoksi.
nimi = nimi + Str(i)
Aihe on jo aika vanha, joten et voi enää vastata siihen.