Hei,
Haluan tulostaa randomilla kaksi lukua samaan soluun. Miten se pitäisi tähän koodiin laittaa? Nyt on siis tämä ja arpoo yhden luvun:
Sub Testitaulu()
Dim a As Integer
For i = 1 To 10
a = Rnd * 10 1
Cells(i 1, 3) = a
Next
End Sub
Tästä siis soluun tulee esim. "2", mutta haluaisin "2 * 2", joista kumpikin lukuarvo on yo. koodin mukaisesti randomilla arvottu ja välissä tekstinä tuo tähti. Apuja?
Random luku + tekstiä soluun?
13
1624
Vastaukset 13
- Anonyymi
Okei, nyt sain tämmösellä toimimaan
Sub Kertotaulu()
Dim a As Integer
For i = 1 To 10
a = Rnd * 10 1
b = Rnd * 10 1
Cells(i 1, 3) = a & " * " & b
Next
End Sub
Mutta, b luku tulostuu desimaalien kanssa. Miten ne saisi pois?
Näyttää siis tyyliin tältä: 2 * 6,5464577 - Anonyymi
Miksi? Yhdessä cellissä kasku: =(RAND()*10 1)*(RAND()*10 1) antaa ko kertolaskun tuloksen. Tai:
A1: =RAND()*10 1
B1: =RAND()*10 1
C1: =A1 & "*" & B1
Jossa C1 on täsmälleen kysytty teksttijono. - Anonyymi
Ei antanut. Ja tää pitää tehdä ohjelmoinnilla, ei funktiolla.
- Anonyymi
"Ja tää pitää tehdä ohjelmoinnilla"
Miksi? Miksi pitää tehdä vaikeimman kautta?
"Ei antanut"
Kyllä antaa. Kasku RAND ei anna aina samaa arvoa. - Anonyymi
Anonyymi kirjoitti:
"Ja tää pitää tehdä ohjelmoinnilla"
Miksi? Miksi pitää tehdä vaikeimman kautta?
"Ei antanut"
Kyllä antaa. Kasku RAND ei anna aina samaa arvoa.Se, että sinä et keksi syytä, miksi joku asia pitäisi tehdä ohjelmoimalla, ei tarkoita, ettei ole mitään syytä tehdä sitä ohjelmoimalla.
Ohjelmoinnilla toteutettuna solussa on lopulta vain tekstiä, ei kaava, joka lakkaa olemasta kun joku kirjoittaa jotain sen päälle. Jospa tarkoitus on vaikkapa antaa ala-astelaiselle harjoitustehtäväksi läjä kertolaskutehtäviä, joihin pitäisi kirjoittaa vastaus.
Tai jos haluaa, että solujen sisältö pysyy samana vaikka muualle taulukkoon tekisi muutoksia. RAND arvotaan uudestaan joka kerta kun minkä tahansa solun arvoa muutetaan. Luultavasti on toivottavaa, että kertolaskut pysyvät samana senkin jälkeen kun niihin kirjoitetaan vastaus.
- Anonyymi
En nyt ala väitellä miksi pitää, tässä tapauksessa vain pitää.
Laitoin tuon ihan fuktiona niin tulosti #NIMI-herjan.- Anonyymi
Eli olet jäärä.
- Anonyymi
No se nyt et vaikuta siihen, että ei toiminut. :D
- Anonyymi
Tee funktio, esim:
function satunnaiset(alaraja, ylaraja)
eka = Int((ylaraja-alaraja 1)*Rnd alaraja)
toka = Int((ylaraja-alaraja 1)*Rnd alaraja)
satunnaiset = eka & " * " & toka
end function
Ja sitten laitat soluun tyyliin:
=satunnaiset(1;10)
Josta voi seurata vaikka:
5 * 9- Anonyymi
Sen sijaan, että kirjoittaa soluun "=satunnaiset(1;10)", se (aloituksesta päätellen) kannattaa tehdä makron puolella:
SOLU (esim A1) = satunnaiset(1;10) - Anonyymi
Anonyymi kirjoitti:
Sen sijaan, että kirjoittaa soluun "=satunnaiset(1;10)", se (aloituksesta päätellen) kannattaa tehdä makron puolella:
SOLU (esim A1) = satunnaiset(1;10)Riippuu tietysti käyttötarkoituksestakin. Makro on kertaluonteinen erikseen ajettava koodinpätkä, mutta funktiota voi uudelleenkäyttää missä solussa tahansa, ja tehdä siihen viittauksiakin. Esimerkiksi raja-arvot voi laittaa muihin soluihin, ja käyttää niitä parametrina funktiossa.
- Anonyymi
Anonyymi kirjoitti:
Riippuu tietysti käyttötarkoituksestakin. Makro on kertaluonteinen erikseen ajettava koodinpätkä, mutta funktiota voi uudelleenkäyttää missä solussa tahansa, ja tehdä siihen viittauksiakin. Esimerkiksi raja-arvot voi laittaa muihin soluihin, ja käyttää niitä parametrina funktiossa.
Toki, ja juuri sitä tarkoitin. Jos kaavan kirjoittaminen soluun olisi vaihtoehto, niin ei aloittaja kyselisi täällä neuvoja tuon toteuttamiseksi VBA:lla. Luultavasti hän siis haluaa, että solussa on arvonnan jälkeen tekstinä nuo kertolaskut.
Ja voihan makronkin ajaa uudestaan. Ei se ole sen kertakäyttöisempi kuin kaava solussa. Makrossakin parametrit voi hakea soluista tai kirjoittaa suoraan makroon, ihan kuinka haluaa.
Jos kaava on kelvollinen vaihtoehto, niin se on tietysti helpompi, mutta jos haluaa, että arvonnan jälkeen soluissa on tekstinä kertolaskuja, niin kaavat eivät tietenkään kelpaa. - Anonyymi
Anonyymi kirjoitti:
Toki, ja juuri sitä tarkoitin. Jos kaavan kirjoittaminen soluun olisi vaihtoehto, niin ei aloittaja kyselisi täällä neuvoja tuon toteuttamiseksi VBA:lla. Luultavasti hän siis haluaa, että solussa on arvonnan jälkeen tekstinä nuo kertolaskut.
Ja voihan makronkin ajaa uudestaan. Ei se ole sen kertakäyttöisempi kuin kaava solussa. Makrossakin parametrit voi hakea soluista tai kirjoittaa suoraan makroon, ihan kuinka haluaa.
Jos kaava on kelvollinen vaihtoehto, niin se on tietysti helpompi, mutta jos haluaa, että arvonnan jälkeen soluissa on tekstinä kertolaskuja, niin kaavat eivät tietenkään kelpaa.Niin olisihan tuon voinut tehdä suoraan valmisfunktioilla, vaikka:
=CONCATENATE(RANDBETWEEN(1;10);" * ";RANDBETWEEN(1;10))
Vba:llahan omat funktiotkin tehdään siellä samassa paikassa kuin makrotkin. Makrojen etu on sekin, ettei solujen arvot muutu päivitettäessä taulukkoa. Tosin funktion arvothan saa kopioimalla ja liittämällä pelkät arvot myös tekstiksi. Yksi funktioiden hyöty on, ettei tarvitse näperrellä koodin puolella niin usein.
Molempi parempi.
Ketjusta on poistettu 1 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Riikka Purra on mukana Suomen huutokauppakeisari -sarjassa
Suomen huutokauppakeisari on tavallisten suomalaisten ohjelma. Sarjan suosiosta kertoo se, että nyt alkaa jo 19. kausi t1731606Kuuleppas
ensimmäiset naissuhteet toimii miehelle eräänlaisena oppikouluna, mutta hän ei välttämättä itse ymmärrä oppineensa mitää2581131Mulla ei ole Suomessa enää mitään
4 vuotta joutuu asumaan henkisessä vankilassa. Sitten voi muuttaa takaisin ulkomaille.179779- 43711
Provider miehistä..
Tietyt miehet puhuvat ilkeästi naisista, jotka haluavat elää miehen tuloilla. Eikö? Mutta miksi tietyt miehet siitä pah210705Sinulle nainen
En ehkä koskaan osannut sanoa tätä oikein. Minun vaikeuteni luottaa liittyi ennen kaikkea menettämisen pelkoon. Siihen63675- 48640
- 40586
Hei rakkaani.
Kohtaaminen lähestyy. Miten teemme sen? Kumpi ottaa yhteyttä vai törmäämmekö jossain sattumalta? Tuleva vaimosi50583Ethän voinut nainen tietää, että rikot rikotun
Omaa elämää taas mietin aamuyön tunteina. En vieläkään löytänyt muistin sokkeloista ainuttakaan onnen hetkeä. Kaipuu on68560- 67551
Yt:t kunnassa päättyi
Oliko nämä tarpeelliset ja ratkeaako taloushuolet näiden avulla? Lehdessä ilmoitettujen lukujen perusteella lisää on tul62545- 32521
Tulisitpa käymään joskus vielä
Olisi niin kiva nähdä pitkästä aikaa. Oletko vielä joskus tulossa?... Niin monet muutoksen tuulet puhaltavat, olisi lohd23489Martsusta tuli leuhka
Ja ylimielinen. Hän ei nosta persettäkään ilmaseksi . Luulempa et nämä ei tee hyvää hyvinvointivalmennuksille.... Nannal169486- 26472
- 69461
Lämpimiä katseita aikoinaan vaihdettiin, siihen se sitten jäi
Sinulla uudet tuulet ja välttelet kohtaamistamme.26460- 6453
Kiulu myynnissä!
Kiulu hakee taas uutta yrittäjää. https://www.yritysporssi.fi/etela-pohjanmaa-lansi-suomi-finland/myytavat/yritykset/ma22425