Supportnet / Forum / Skripte(PHP,ASP,Perl...)
VBS Zufallsbuchstabe
Frage
Hi. Wie kann ich mit VBScript einen Zufallsbuchstaben erzeugen?
Antwort 1 von echoslider
edit. habs hinbekommen.
zahl = Int((maxzahl * Rnd) + 1)
If zahl = 1 Then buchstabe = "A"
zahl = Int((maxzahl * Rnd) + 1)
If zahl = 1 Then buchstabe = "A"
Antwort 2 von CaroS
Was hältst Du von
X = Code(Int(maxzahl * Rnd) + 1) ?
Spart bei einer größeren Anzahl Buchstaben die vielen IFs.
(Bem.: Nur beim Namen der Funktion Code() bin ich mir im Moment nicht ganz sicher, ob sie genau so heißt, habe auch gerade nichts zum Nachschlagen. Aber irgend so etwas muss es geben, was den ASCII-Code direkt in das entsprechende Zeichen umwandelt.)
Gruß, CaroS
X = Code(Int(maxzahl * Rnd) + 1) ?
Spart bei einer größeren Anzahl Buchstaben die vielen IFs.
(Bem.: Nur beim Namen der Funktion Code() bin ich mir im Moment nicht ganz sicher, ob sie genau so heißt, habe auch gerade nichts zum Nachschlagen. Aber irgend so etwas muss es geben, was den ASCII-Code direkt in das entsprechende Zeichen umwandelt.)
Gruß, CaroS
Antwort 3 von rfb
CaroS´ Vorschlag ist wohl schon sinnvoller, allerdings, wenn du auch Umlaute und sonstige Sonderzeichen (die nicht neben den gewohnten Buchstaben im ASCII-Code eingereiht sind) dabei haben willst, ist es einfacher, alle benötigten Zeichen in ein Array zu packen (oder einen String und darin die einzelnen Zeichen wie aus einem Array rauspicken) und die Zufallsfunktion einfach über den Array-Index laufen zu lassen.
Dies kombiniert die freie Wählbarkeit der Zeichen (A1) mit der einfachen Zuordnung ohne if (A2).
Dies kombiniert die freie Wählbarkeit der Zeichen (A1) mit der einfachen Zuordnung ohne if (A2).
Antwort 4 von nighty
hi all :)
ermittelt 10 buchstaben der gross bzw kleinschreibung
gruss nighty
Option Explicit
Sub makro01()
Randomize Timer
ReDim zuzahl(52) As String
Dim zahl(52) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zaehler1 As Integer
endeindex = 52
For allezahlen = 97 To 122
zuzahl(allezahlen - 96) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 65 To 90
zuzahl(allezahlen - 64 + 26) = Chr$(allezahlen)
Next allezahlen
For ziehung = 1 To 10
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
zaehler1 = zaehler1 + 1
Cells(1, 1) = Cells(1, 1) + zahl(ziehung)
Next ziehung
End Sub
ermittelt 10 buchstaben der gross bzw kleinschreibung
gruss nighty
Option Explicit
Sub makro01()
Randomize Timer
ReDim zuzahl(52) As String
Dim zahl(52) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zaehler1 As Integer
endeindex = 52
For allezahlen = 97 To 122
zuzahl(allezahlen - 96) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 65 To 90
zuzahl(allezahlen - 64 + 26) = Chr$(allezahlen)
Next allezahlen
For ziehung = 1 To 10
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
zaehler1 = zaehler1 + 1
Cells(1, 1) = Cells(1, 1) + zahl(ziehung)
Next ziehung
End Sub
Antwort 5 von nighty
hi all :)
oder noch eine variante gross wie klein buchstaben a bis z und zahlen 0 bis 9
gruss nighty
Option Explicit
Sub makro01()
Randomize Timer
ReDim zuzahl(61) As String
Dim zahl(61) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zaehler1 As Integer
endeindex = 61
For allezahlen = 97 To 122
zuzahl(allezahlen - 97) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 65 To 90
zuzahl(allezahlen - 65 + 26) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 0 To 9
zuzahl(allezahlen + 52) = Mid(Str$(allezahlen), 2, 1)
Next allezahlen
For ziehung = 1 To 10
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
zaehler1 = zaehler1 + 1
Cells(1, 1) = Cells(1, 1) & zahl(ziehung)
Next ziehung
Cells(1, 1) = Trim(Cells(1, 1))
End Sub
oder noch eine variante gross wie klein buchstaben a bis z und zahlen 0 bis 9
gruss nighty
Option Explicit
Sub makro01()
Randomize Timer
ReDim zuzahl(61) As String
Dim zahl(61) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zaehler1 As Integer
endeindex = 61
For allezahlen = 97 To 122
zuzahl(allezahlen - 97) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 65 To 90
zuzahl(allezahlen - 65 + 26) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 0 To 9
zuzahl(allezahlen + 52) = Mid(Str$(allezahlen), 2, 1)
Next allezahlen
For ziehung = 1 To 10
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
zaehler1 = zaehler1 + 1
Cells(1, 1) = Cells(1, 1) & zahl(ziehung)
Next ziehung
Cells(1, 1) = Trim(Cells(1, 1))
End Sub
Antwort 6 von nighty
hi all :)
ups korrigiert :))
gruss nighty
Option Explicit
Sub makro01()
Randomize Timer
ReDim zuzahl(61) As String
Dim zahl(61) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zaehler1 As Integer
endeindex = 61
For allezahlen = 97 To 122
zuzahl(allezahlen - 97) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 65 To 90
zuzahl(allezahlen - 65 + 26) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 0 To 9
zuzahl(allezahlen + 52) = Mid(Str$(allezahlen), 2, 1)
Next allezahlen
For ziehung = 1 To 10
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
zaehler1 = zaehler1 + 1
Cells(1, 1) = Cells(1, 1) & zahl(ziehung)
Next ziehung
End Sub
ups korrigiert :))
gruss nighty
Option Explicit
Sub makro01()
Randomize Timer
ReDim zuzahl(61) As String
Dim zahl(61) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zaehler1 As Integer
endeindex = 61
For allezahlen = 97 To 122
zuzahl(allezahlen - 97) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 65 To 90
zuzahl(allezahlen - 65 + 26) = Chr$(allezahlen)
Next allezahlen
For allezahlen = 0 To 9
zuzahl(allezahlen + 52) = Mid(Str$(allezahlen), 2, 1)
Next allezahlen
For ziehung = 1 To 10
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
zaehler1 = zaehler1 + 1
Cells(1, 1) = Cells(1, 1) & zahl(ziehung)
Next ziehung
End Sub

