Excel VBA: Überprüfen Sie die negative Nummer in der InputBox
-
25-10-2019 - |
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
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