webForumDet fria alternativet

Slumpa i VBA

1 svar · 626 visningar · startad av Gaski

GaskiMedlem sedan juni 2000310 inlägg
#1

När jag kör följande kod i ett exel makro:

Dim slump(80) As Integer
Do
Randomize
slumptal = Int((7 * Rnd) + 1)
For tal = 1 To 7
If slumptal = slump(tal) Then
Exit For
End If
varv = varv + 1
slump(varv) = slumptal
Exit For
Next tal
Loop Until varv = 7

For tal2 = 1 To 7
Cells(1, 1).Value = Cells(1, 1) & slump(tal2) & ", "
Next tal2

Kan reslutatet bli: 3, 1, 5, 5, 1, 5, 6,
Vilket är fel, ett tal får ju bara förekomma EN gång. Hur gör man det?

clarkbonesMedlem sedan feb. 20013 023 inlägg
#2

Tja, du får väl slänga upp de framslumpade värdena i en array och kontrollera det senast framslumpade värdet med värdena i arrayen. Använd en loop för att köra slumpningen igen om värdet inte är unikt.

Glasklart?

128 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)