Problem bei zufallsfunktion in VBA
lima-city → Forum → Programmiersprachen → Basic
ausfhrung
base
direkte lsung
eintrag
ergebnis
funktion
grere menge
inhalt
kleine frage
listen
lord
lsen
lsung
mu
obergrenze
option
schnelle hilfe
untergrenze
variant
vergleich
-
Weiß jemand wie man bei der Rnd funktion von VBA zahlen ausklammert also z.B. eine zufällige zahl zwischen 1 und 11 außer 6 und 7.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Eine direkte Lösung dafür gibts nicht. Aber man kann es so lösen:
Du erstellst ein Array, das bestimmte Zahlen enthält.
Die Zufallsfunktion wählt nun einen zufälligen Index (Eintrag) in dem Array aus.
Anschließend frägst du nur noch den Inhalt des Index ab.
Der Code lautet dazu:
Option Base 0
Option Explicit
Option Compare Binary
Sub Zufallszahlen()
Dim Untergrenze, Obergrenze, Ergebnis, Index As Integer
Dim Liste(8) As Integer
Liste(0) = 1
Liste(1) = 2
Liste(2) = 3
Liste(3) = 4
Liste(4) = 5
Liste(5) = 8
Liste(6) = 9
Liste(7) = 10
Liste(8) = 11
Untergrenze = LBound(Liste)
Obergrenze = UBound(Liste)
Randomize
Index = Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)
Ergebnis = Liste(Index)
MsgBox Str(Ergebnis)
End Sub
-
Ich habe eine kleine Frage:
Wäre es nicht einfacher, eine zufällige Zahl zu machen und dann mit den "verbotenen" Zahlen zu vergleichen? Dann müsste man halt eine neue Zahl machen, bis man eine gültige hat. Weil wenn man ein paar Zahlen mehr hat wird das mit dem Array recht mühsam. -
Ich habe eine kleine Frage:
Wäre es nicht einfacher, eine zufällige Zahl zu machen und dann mit den "verbotenen" Zahlen zu vergleichen? Dann müsste man halt eine neue Zahl machen, bis man eine gültige hat. Weil wenn man ein paar Zahlen mehr hat wird das mit dem Array recht mühsam.
Für einen kleinen ausgeschlossenen Bereich kann das Vergleichen mit "verbotenen" Zahlen einfacher sein, aber sobald du eine größere Menge ausschließen willst, ist diese Variante erheblich zeitaufwendiger bei der Ausführung. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage