VB byref 类型不符

事件代码如下 Option Base 1 Dim Arr1(20) As Integer Dim Arr2(20) As Integer Dim a(20) As Integer Sub ReadData1() Open App.Path & "\" & "datain1.txt" For Input As #1 For i = 1 To 20 Input #1, Arr1(i) Next i Close #1 End Sub Sub ReadData2() Open App.Path & "\" & "datain2.txt" For Input As #1 For i = 1 To 20 Input #1, Arr2(i) Next i Close #1 End Sub Sub WriteData(Filename As String, Num As Integer) Open App.Path & "\" & Filename For Output As #1 Print #1, Num Close #1 End Sub Private Sub C1_Click() Call ReadData1 Call ReadData2 End Sub Private Sub C2_Click() For i = 1 To 20 a(i) = Int(Arr1(i) / Arr2(i)) Next i End Sub Private Sub C3_Click() Filename = "dataout.txt" Num = a() Call WriteData(Filename, Num) End Sub 然后要求,和报错界面在图片里

不知道怎么回事,求解~

第1个回答  2010-06-21
'主要原因是你没有定义变量类型,不过你的程序也有不少错误,我都给你改过来了
Option Base 1
Dim Arr1(20) As String
Dim Arr2(20) As String
Dim a(20) As Integer

Sub ReadData1()
Open App.Path & "\" & "datain1.txt" For Input As #1
For i = 1 To 20
Line Input #1, Arr1(i)
Next i
Close #1
End Sub

Sub ReadData2()
Open App.Path & "\" & "datain2.txt" For Input As #1
For i = 1 To 20
Line Input #1, Arr2(i)
Next i
Close #1
End Sub

Sub WriteData(Filename As String, Num() As Integer)
Open App.Path & "\" & Filename For Output As #1
For i = 1 To 20
Print #1, CStr(Num(i))
Next
Close #1
End Sub

Private Sub C1_Click()
Call ReadData1
Call ReadData2
End Sub
Private Sub C2_Click()
For i = 1 To 20
a(i) = Int(Arr1(i) / Arr2(i))
Next i
End Sub

Private Sub C3_Click()
Dim Filename As String
Dim Num() As Integer
Filename = "dataout.txt"
Num = a()
Call WriteData(Filename, Num)
End Sub
第2个回答  2010-06-21
Private Function Isprime(N As Integer) As Boolean
Dim M As Integer
For M = 2 To Sqr(N)
If N Mod M = 0 Then Exit Function
Next M
Isprime = True
End Function

Private Sub Command1_Click()
Dim i As Integer
i = 18000
Do
i = i - 1
Isprime (i)
Loop Until Isprime(i) = True
Text1.Text = Str(i)
End Sub

Private Sub WriteData(Filename As String, Num As Integer)
Open App.Path & "\" & Filename For Output As #1
Print #1, Num
Close #1
End Sub

Private Sub Command2_Click()
Call WriteData("out5.text", Val(Text1))
End Sub本回答被提问者采纳
相似回答