1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

VBS: Unbound und Typenkonflikt

Dieses Thema im Forum "Visual Basic, Visual Basic for Applications (VBA) " wurde erstellt von Adrjan, 24. August 2017.

  1. Adrjan

    Adrjan New Member

    Hallo zusammen,

    ich habe folgendes kleines Skript für einen Zufallsgenerator:
    Code:
    Dim iMin, iMax, i, iZahl
    
    iMin = 1
    iMax = 3
    
    For i = 0 To UBound(a)
    Randomize
    iZahl = Int((iMax - iMin + 1) * Rnd + iMin)
    a(i)=iZahl
    Next
    strNummer = "Nummer: " &izahl
    Leider erhalte ich beim Ausführen immer die Fehlermeldung "Typenkonflikt: 'UBound".

    Kann mir jemand helfen?
    Vielen Dank!

    Viele Grüße
    Adrjan
  2. BAGZZlash

    BAGZZlash Active Member

    Wie ist denn das Array "a" deklariert? Oder ist es das am Ende gar nicht?
  3. Adrjan

    Adrjan New Member

    Stimmt, das Array ist nicht deklariert.
    Wie müsste es denn korrekt aussehen?
  4. BAGZZlash

    BAGZZlash Active Member

    Na, ich weiß ja nicht, wie viele Elemente Dein Array haben soll, das weißt nur Du. Wozu brauchst Du es überhaupt, in Deinem Code-Ausschnitt wird es jedenfalls nicht weiter verwendet. Welchen Typ sollen die Elemente des Arrays haben?

    Prinzipiell mal so, allerdings ist das VB, und nicht VBS. Ob das in VBS so klappt, weiß ich also nicht.

    Code:
    Dim a(0 To 10) As Long
  5. German

    German Well-Known Member c-b Experte

    @BAGZZlash Eine Deklaration als Typ gibt es bei VBS nicht (alles ist vom Typ Variant, der Subtyp wird implizit zur Laufzeit bestimmt).

    Code:
    Option Explicit
    Dim i, a(9) ' für 10 Arrayelemente mit Indizes 0...9
    Const iMin = 1, iMax = 3
    
    Randomize
    
    For i = 0 To UBound(a)
      a(i) = Int((iMax - iMin + 1) * Rnd + iMin)
    Next
    
    WScript.Echo "Nummern:" & vbNewLine & Join(a, vbNewLine)
    
    "Randomize" wird einmalig aufgerufen (nicht mehrfach in der Schleife). Das "Option Explizit" sorgt dafür, dass du bei nicht deklarierten Variablen auch gleich eine entsprechende Fehlermeldung bekommst.
  6. Adrjan

    Adrjan New Member

    @all
    Herzlichen Dank! Das hat mir sehr weitergeholfen.