I'd do something like this
I prefer to have 'byte-size' value tests
I also added (at least for my testing) an 'escape' value of 0
Option Explicit
Sub NegativeOddInteger()
Dim Sum As Double
Dim NumberInput As Variant
Dim x As Double
Dim NumberOK As Boolean
NumberOK = False
On Error GoTo BadInput
Do
GetNumber:
NumberInput = InputBox("Please Enter a Negative Odd Double Digit Integer, '0' to Exit")
If NumberInput = 0 Then Exit Sub
If Not IsNumeric(NumberInput) Then Err.Raise 1000, "NegativeOddInteger", "Not a number"
If NumberInput >= 0 Then Err.Raise 1001, "NegativeOddInteger", "Not negative"
If Abs(Int(NumberInput)) <> Abs(NumberInput) Then Err.Raise 1002, "NegativeOddInteger", "Not an integer"
If Abs(NumberInput) Mod 2 <> 1 Then Err.Raise 1003, "NegativeOddInteger", "Not odd"
If NumberInput < -99 Or NumberInput > -10 Then Err.Raise 1004, "NegativeOddInteger", "Not 2 digits"
NumberOK = True
Loop Until NumberOK
For x = NumberInput To 0 Step 2 'This sums numbers from input to zero, doing odds only.
Sum = Sum + x
Next
MsgBox ("This equals " & Sum) & vbCrLf & ("based on the inputted number of ") & NumberInput
Exit Sub
BadInput:
MsgBox Err.Description & " (" & Err.Number & ") Try again"
Resume GetNumber
End Sub