![Erstellen einer Zahlenfolge in Excel von der ersten Eingabezahl bis zur zweiten](https://rvso.com/image/1518659/Erstellen%20einer%20Zahlenfolge%20in%20Excel%20von%20der%20ersten%20Eingabezahl%20bis%20zur%20zweiten.png)
Ich möchte Zahlen in ein Nachrichtenfeld zwischen zwei von mir ausgewählten Zahlen schreiben. Dabei muss geprüft werden, ob es sich um gerade Zahlen handelt und dass sie von der kleinsten bis zur größten Zahl reichen müssen. Die beiden Zahlen müssen positiv und kleiner als 100 sein.
Ich verwende Visual Basic in Excel, habe es jedoch noch nie zuvor verwendet.
Private Sub CommandButton1_Click()
Dim a, b, P, i As Integer
a = InputBox("Write number from 1 to 100 ")
If a <= 0 Or a >= 100 Then
MsgBox "Wrong input"
Exit Sub
End If
b = InputBox("Write number from 1 to 100 ")
If b <= 0 Or b >= 100 Then
MsgBox "Wrong input"
Exit Sub
End If
For i = a To b
If a <> 0 & a <= b Then
a = a + 1
Else
P = a
a = a + 1
Exit For
End If
Next i
MsgBox P
End Sub
Antwort1
Ich würde es etwas anders machen. Sie können dies sicherlich mit einem Befehlsknopf auslösen. Beachten Sie, dass ich nach geraden Zahlen suche (und ich würde Null auch nicht als positive (oder negative) Zahl betrachten).
Option Explicit
Sub CreateSequence()
'Note each variable must have a type declaration,
' else they will be of type Variant
Dim x As Long, y As Long, z As Long
Dim S As String
x = InputBox("First Number")
y = InputBox("Second Number")
If Not CheckNum(x) Or Not CheckNum(y) Then
MsgBox "Both numbers must be positive and less than 100"
Exit Sub
End If
If x > y Then 'reverse x and y
z = y
y = x
x = z
End If
For z = x To y
'check if even and add to string if they are
If z Mod 2 = 0 Then S = S & vbLf & z
Next z
'Remove the leading separator (vbLf)
S = Mid(S, 2)
MsgBox S
End Sub
Function CheckNum(L As Long) As Boolean
If L > 0 And L < 100 Then
CheckNum = True
Else
CheckNum = False
End If
End Function