您好我试图回答一个非常基本的问题但是我试图让它在excel中运行 我需要程序在屏幕上显示正确的答案 我的代码是
Private Sub CommandButton1_Click()
Dim i As Integer
Dim A1 As Integer
Dim A2 As Integer
Dim Ans As Integer
i = 1
A1 = 31.2928
A2 = 22.352
If (((A1 * i) / 2)) > (A2 * i) Then
Ans = i
Else
i = i + 1
End If
Ans = i
MsgBox "Value is" & Ans
End Sub
我希望它能够对上述陈述提出正确答案 我希望程序将A1乘以i,然后将其除以2然后查看它是否大于A2乘以i并循环程序直到找到一个数字
答案 0 :(得分:2)
您首先将A1
设置为31,将A2
设置为22.然后计算等于(((31 * 1) / 2)) > (22 * 1)
的{{1}}。 (即使您计算了False
,也会这样做。)因为(((31.2928 * 1) / 2)) > (22.352 * 1)
False
将i
设置为i + 1
2
。然后,您设置Ans = i
,因此Ans
现在为2。
我相信你想要的是
Private Sub CommandButton1_Click()
Dim i As Integer
Dim A1 As Double
Dim A2 As Double
Dim Ans As Integer
i = 1
A1 = 31.2928
A2 = 22.352
Do
If (((A1 * i) / 2)) > (A2 * i) Then
Ans = i
Exit Do
End If
i = i + 1
Loop
MsgBox "Value is " & Ans
End Sub
但是,由于31.2928 * i /2
永远不会超过22.352 * i
(因为15.6464< 22.352),我建议您不要运行该代码,因为它会在i
崩溃到达32767并发出溢出错误。
注意:(a * i) > (b * i)
形式的等式相当于a > b
(将两边除以共同值i
后),因此答案为True
或{ {1}}无论False
的值如何(假设i
的正值)。