Onnistuuko mestareilta seuraavanlainen ohjelma:
Kahdeksan hevosta A,B,C,D,E,F,G ja H halutaan arpoa kahdeksalle radalle 1,2,3,4,5,6,7 ja 8,siten,että hevoset A, C ja E arvotaan aina radoille 1,3 ja 5 (mielivaltaisesti),ja loput hevoset muille radoille mielivaltaisesti?
Tulostus pitäisi tulla tässä muodossa
A rata
B rata
C rata
jne
, siten ettei kukaan huomaisi kyseessä olevan vilpillinen arvonta?
Kahdeksan hevosta A,B,C,D,E,F,G ja H halutaan arpoa kahdeksalle radalle 1,2,3,4,5,6,7 ja 8,siten,että hevoset A, C ja E arvotaan aina radoille 1,3 ja 5 (mielivaltaisesti),ja loput hevoset muille radoille mielivaltaisesti?
Tulostus pitäisi tulla tässä muodossa
A rata
B rata
C rata
jne
, siten ettei kukaan huomaisi kyseessä olevan vilpillinen arvonta?
Vastaukset 10
Vanhimmat
Taul1 soluihin
A1=Hevosen nimi
B1=rata
tee nappi ja liitä taulukon moduuliin koodi
Private Sub CommandButton1_Click()
Lähtölista
End Sub
ja moduuliin seuraava...
Sub Lähtölista()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets.Add
ActiveSheet.Name = "Huuhaa"
Range("A1") = "A"
Range("A2") = "C"
Range("A3") = "E"
Range("B1").FormulaR1C1 = "=RAND()*(RC[1]-1) 1"
Range("B1").AutoFill Destination:=Range("B1:B3"), Type:=xlFillDefault
Range("A:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B1") = 1
Range("B2") = 3
Range("B3") = 5
Range("A4") = "B"
Range("A5") = "D"
Range("A6") = "F"
Range("A7") = "G"
Range("A8") = "H"
Range("B4").FormulaR1C1 = "=RAND()*(RC[1]-1) 1"
Range("B4").AutoFill Destination:=Range("B4:B8"), Type:=xlFillDefault
Range("A4:B8").Sort Key1:=Range("B4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B4") = 2
Range("B5") = 4
Range("B6") = 6
Range("B7") = 7
Range("B8") = 8
Range("A1:B8").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1:B8").Copy Sheets("Taul1").Range("A2")
Sheets("Taul1").Columns("A:B").EntireColumn.AutoFit
Sheets("Huuhaa").Delete
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Sheets("Taul1").Activate
End Sub
Kiitos! Arvasinkin että täällä se onnistuu.
En kyllä ymmärrä tuosta toistaiseksi mitään ,mutta se on sikäli hyvä ettei varmasti kukaan muukaan.
Perehdyn ohjelmaan kun pääsen töihin ja koneelle,missä on Excel ja sopivasti aikaa.
ohjelma pysähtyy tuohon DataOption1: tulee compile error ,data not found.Tämä on Excel 2000
Siinä muuten luki: Named argument not found
otas toi rivi pois koodista (ei taida olla tota excel 2000)
DataOption1:=xlSortNormal
Olen nyt taas jo kotona ,mutta kokeilin ottaa ne molemmat data-optionrivit pois ja siihen tuli silloin joku syntax-error.
Mutta annetaan tämän nyt olla siihen asti kun on vireemmät koneet ja tuoreemmat excel-ohjelmat.
Se tässä oli vain tarkoituksena,että halusin nähdä kuinka helppo on tehdä vilppiarvontaohjelma,mistä amatööri ei ymmärrä mitään. Kiitos vaivannäöstäsi.
Tuossa on kyse todennäköisesti siitä, että Kunde on tehnyt koodin Excel 2003-versiolla makronauhoituksella joka lisää automaattisesti Dataoptionin. Dataoption on tullut mukaan vasta Excel 2003:een jolloin koodi ei toimi ajettaessa sitä Excel 2000-versiossa.
Syntaksivirhe johtuu siitä, että et varmaankaan poistanut edellisellä rivillä olevaa rivinvaihtomerkkiä "_" etkä pilkkua. Poista ne myös niin koodin pitäisi toimia.
Alkuperäinen koodi:
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Väärin korjattu koodi:
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
Oikea korjaus:
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Kiitos nyt sinullekin!Se on kyllä ilman muuta varmaa etten poistanut sieltä edelliseltä riviltä mitään. Kokeilen vielä huomenna sitä.
Tein nuo muutokset ja toimii hyvin. Kiitokset vielä kerran!
.. toiselle keskustelufoorumille, kuinka "Hienohelma" saikaan hevoselleen just oikean lähtöradan?