4 Stimmen

vba realistischer zufallszahlengenerator

Ich weiß, dass ich eine Quasi-Zufallszahlengenerierungsfunktion/Variable namens Rnd verwenden kann. Allerdings ist mir aufgefallen, dass immer, wenn ich Rnd in meinem Benutzerformular verwendet habe, diese Zahlenfolge immer angezeigt wird:

erste Iteration: 0.705547511577606 zweite Iteration: 0.533424019813538 ...

Das Ergebnis ist, dass die Reihenfolge der angezeigten Zahlen jedes Mal dieselbe ist, wenn ich das Benutzerformular neu aufrufe, so dass es nicht zufällig wirkt. Gibt es andere Funktionen in der VBA-Funktionsgruppe, die es mehr zufällig fühlen würde? Vielen Dank im Voraus.

10voto

Travis Beale Punkte 5294

Versuchen Sie, einen einzelnen Aufruf von Randomize Timer bevor Sie irgendwelche Aufrufe an Rnd . Dadurch wird der Zufallszahlengenerator anhand der Tageszeit geimpft.

2voto

Luke Punkte 19845

Ich weiß nicht viel über VB, aber ich denke, Sie müssen Samen Ihren Nummerngenerator. Ich denke Randomize tut es für VB.

0voto

CalfordMath Punkte 55

Sie könnten den Seed manuell auf Basis der Tageszeit einstellen... fügen Sie etwas wie das Folgende oben in Ihren vba-Code ein:

For i = 0 To (CInt(Format(Time, "ms"))) 'minutes and seconds turned to integer
        test_random = Rnd()
    Next

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X