[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ohjelmistot]Makrosta!



> Olen koettanut nauhoittaa makroa, jossa InputBoxin avulla uudelle
> kilpailijalle (lisää kilpailija idealla) voi antaa erilaisia pisteitä ja
> suoritukseen kuluvan ajan, joiden perusteella tietyssä solussa olevat
> funkitiot laskevat kilpailijalle ns. kokonaispisteet. Makro toimii mainiosti
> muuten mutta kun ajan syöttää lokeroon "Anna aika" niin aika tulee
> solun vasempaan laitaan (muuten muissa soluissa ja käsin syötettyinä oikeassa
> laidassa) ja soluihin joihin pitäisi tulla automaattisesti funkitioiden
> avulla lasketut pisteet kulutetusta ajasta ja kokonaispisteistä, ts.
> solut joissa on funktioita, antavat virheilmoituksen uuden kilpailijan
> kohdalle.
>
> Olen muokannut aikasarakkeen solut sellaisiksi, että antamani aika on
> muodossa mm:ss,0 (tyylivalikosta se löytyy kohdalta oma)ja sellaisena
> se myös uuden kilpailijan soluun tulee mutta makro ei silti toimi.
> Pitääkö makroon kirjoittaa käsin jokin saman tapainen solun alustus
> hommeli kuin päivämääränkin kohdalla? Eli miten saan makroni toimivaksi
> (omat ideani ovat lopussa)?

Annat varmastikin ajan myös muodossa mm:ss,0? Tuo viimeinen pilkku
aiheuttaa hieman harmaita hiuksia. :( Tuohon ei auta edes tuo tietotyypin
muutos, kuten päivämäärän yhteydessä on tehty. Viimeisen kohtahan on
varmastikin sekunnin osia. 

Taistelin tuon kanssa hetken ja löysin siihen jonkinlaisen ratkaisun.
Tuohon ei näytä auttavan tuon ajan formatointi yrityksetkään. Aika tulee
oikeassa muodossa ainoastaan kun se annetaan seuraavassa muodossa: mm:ss.0
eli pilkun paikalle annetaan piste. 

Seuraavassa ongelmaa on jalostettu hieman. Makrossa tehdään
merkkijonokorvaus, joten on aivan sama antaako käyttäjä pilkun vai
pisteen.

Sub koe()
  aika = InputBox("Anna aika")
  aika = Replace(aika, ",", ".")
  ActiveCell.FormulaR1C1 = aika  
End Sub

> Millaista muotoa oikeellisuustarkastuksiin tarkoitettujen funktioiden
> pitäisi olla? Jokin esim. olisi mukava, koska olen koittanut joitakin
> tapoja mutta ne eivät ole olleet toimivia ja olen ehkä ymmärtäyt asian
> väärin tai tehnyt jatkuvasti jonkin saman virheen...

Tarkoitus on, että funktiot eivät palauta virheilmoituksia, joten tuohon
riitää normaali IF-funktio ja sen sisällä sitten esimerkiksi virheen
testaava funktio (Information tai Erikois). Kaavojen tapauksissa joutuu
usein käyttämään ehtona tyhjää eli "". Jos solussa on kaava, niin
isblank-funktio ei auta :(

Toivottavasti auttoi!
--
Petri Heinonen                 <URL: http://www.mit.jyu.fi/peheinon/>        
Jyväskylän yliopisto/Tietotekniikan laitos        peheinon@mit.jyu.fi
PL 35   (Agora C431.2)                         	Puh. +358 14 260 2746
40351 Jyväskylä                                 Fax. +358 14 260 2731






-- send "unsubscribe ohjelmistot" to majordomo@cc.jyu.fi to unsubscribe ---