Validation VBA-使用InputBox的负偶数
我对VBA非常陌生,我希望如果有人能在这方面帮助我: 我必须编写一个请求用户使用输入框输入负偶数整数的下属。子程序还需要将99和输入数字之间的所有偶数相加,并在消息框中显示结果。它还必须包括错误检查,以验证初始输入的数字是否为负数、偶数和整数 这是我想到的,但它似乎工作不正常:Validation VBA-使用InputBox的负偶数,validation,vba,excel,inputbox,Validation,Vba,Excel,Inputbox,我对VBA非常陌生,我希望如果有人能在这方面帮助我: 我必须编写一个请求用户使用输入框输入负偶数整数的下属。子程序还需要将99和输入数字之间的所有偶数相加,并在消息框中显示结果。它还必须包括错误检查,以验证初始输入的数字是否为负数、偶数和整数 这是我想到的,但它似乎工作不正常: Option Explicit Sub NegativeEvenIneteger() Dim Sum As Double Dim NumberInput As Integer Dim x As
Option Explicit
Sub NegativeEvenIneteger()
Dim Sum As Double
Dim NumberInput As Integer
Dim x As Double
NumberInput = InputBox("Please Enter a Negative Even Integer")
If NumberInput >= 0 Then MsgBox ("ERROR, Input number must be Negative")
If NumberInput Mod 2 = 0 Then MsgBox ("ERROR, Input number must be Even")
Sum = 0
For x = NumberInput + 1 To 0 Step 2
Sum = Sum + x
Next
MsgBox ("This equals " & Sum) & vbCrLf & _
("based on the inputted number of ") & NumberInput
End Sub
请告诉我你们的想法 好,以下代码应执行此操作:
Option Explicit
Sub NegativeEvenIneteger()
Dim Sum As Double
Dim NumberInput As Integer
Dim x As Double
Dim NumberError As Boolean: NumberError = True
NumberInput = InputBox("Please Enter a Negative Even Integer")
If IsNumeric(NumberInput) Then 'test for number
If Not NumberInput Like "*.*" Then 'test for decimal
If NumberInput < 0 Then 'test for negative
If NumberInput Mod 2 = 0 Then
Sum = 0
For x = NumberInput To 98 Step 2
Sum = Sum + x
Next
NumberError = False
End If
End If
End If
End If
If NumberError Then
MsgBox "not a valid input"
Else
MsgBox ("This equals " & Sum) & vbCrLf & ("based on the inputted number of ") & NumberInput
End If
End Sub
选项显式
亚负性Venineteger()
双份点心
数字输入为整数
将x调为双精度
Dim NumberError为布尔值:NumberError=True
NumberInput=InputBox(“请输入负偶数整数”)
如果是数字(NumberInput),则“测试数字”
如果不是像“*.*”这样的数字输入,则测试十进制
如果NumberInput<0,则测试是否为阴性
如果NumberInput Mod 2=0,则
总和=0
对于x=数字,输入98步骤2
总和=总和+x
下一个
NumberError=False
如果结束
如果结束
如果结束
如果结束
如果号码错误,那么
MsgBox“不是有效的输入”
其他的
MsgBox(“此等于”和)&vbCrLf&(“基于输入的数量”)&NumberInput
如果结束
端接头
- 如果
为零,则NumberInput Mod 2
为偶数。在这种情况下,您会显示一条错误消息,表示该数字不是偶数。如果模数不是零,则可能会触发该消息NumberInput
- 当你检查输入时,它还没有起到任何作用;即使显示错误消息,也不会停止程序。因此,即使出现错误,一旦用户单击消息框上的“OK”,子例程也会启动并生成不应该出现的结果 在发生错误的情况下,您需要返回、抛出异常、执行一些操作以脱离主代码路径并防止函数的内容发生
数字输入Mod 2=0
,则数字为偶数。你在操作,好像它不是。更重要的是,即使你显示了一个错误混乱…嗯。让我写一个答案。