Erstellen einer Zahlenfolge in Excel von der ersten Eingabezahl bis zur zweiten

Erstellen einer Zahlenfolge in Excel von der ersten Eingabezahl bis zur zweiten

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

verwandte Informationen