很简单的VB代码,就是不知哪儿错了,高手帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/15 10:03:50
我要在text1和text2中输入两个数,然后求出其间的质数的和,并在text3中显示结果,代码如下
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
a = Text1.Text
b = Text2.Text
Dim c As Single
c = 1
Dim d(i) As Single
d(i) = 0
For i = a To b
x = 2
Do Until x = i

c = i Mod x
x = x + 1
If c = 0 Then Exit Do: d(i) = i
Loop
Next i
Dim e As Single
For e = a To b
e = e + d(i)
Next e
Text3.Text = e
End Sub

错了很多哦!特别是 Dim d(i) As Single中,就是不行的,这里的i不能是变量.
Dim a As Single
Dim b As Single
a = Text1.Text
b = Text2.Text
If a < 3 Or a >= b Then MsgBox "数据不正确,请重新输入!": Exit Sub

Dim c As Single
c = 1
Dim d() As Single
ReDim d(a To b)
For i = a To b
d(i) = i
x = 2
Do
c = i Mod x
If c = 0 Then d(i) = 0: Exit Do
x = x + 1
Loop Until x > Sqr(i)
Next i
Dim e As Single
For i = a To b
e = e + d(i)
Next i
Text3.Text = e

Dim d(i) As Single
d(i) = 0

在没有确定i值的情况之下引用d(i)显然是不合理的

Private Sub Command2_Click()
Dim a As Integer
Dim b As Integer
Dim Sum As Integer

a = Text1.Text
b = Text2.Text
Sum = 0
For i = a To b
If IsPrime(i) Then
Sum = Sum + i
End If
Next
MsgBox Sum
End Sub

Function IsPrime(ByVal N As Integer) As Boolean