Frage

Ich benutze eine Eingabebox mit dem GET eine Nummer von einem Benutzer. Ich möchte keine erlaubte Eingabe vermeiden und bin mit negativen Zahlen festgehalten. Die einzige Eingabe, die verarbeitet werden sollte, ist eine Ganzzahl zwischen 1 und 500. Ich verstehe nicht, warum -1 noch ausgelöst wird. Hier ist mein bisheriger Code:

LBefore = InputBox("lines?", "", ">>> insert number <<<", 11660, 9540)

Select Case StrPtr(LBefore)
  Case 0
    'Cancel pressed
    Exit Sub
  Case Else

    If (LBefore <> "") Then
    'Check for numeretical value
       If IsNumeric(LBefore) Then
             cijfer = Abs(CByte(LBefore))
               'Check to see if value is in allowed range
                If (cijfer >= 1) And (cijfer <= 500) Then
                   'do stuff ...
                end If
       End If
     End If
   End Select
War es hilfreich?

Lösung

Es wird ausgelöst, weil Sie verwenden cijfer = Abs(CByte(LBefore)).
Abs ist absolute Funktion, also werden negative Zahlen positiv!
Versuchen Sie es zu verwenden cijfer = CInt(LBefore).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top