Dim a(1 To 8) As Integer
Dim num As IntegerPrivate Sub Form_Load()
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
End SubPrivate Sub Command1_Click()
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
num = 5
Call BuildA(a, num)
Command1.Enabled = False
End SubPrivate Sub Command2_Click() Dim pos As Integer
Dim x As Integer
pos = InputBox("请输入需要插入的位置:", "插入的位置", 3)
x = InputBox("请输入需要插入的数直:", "插入的数值", 9)
Call InsertA(a, num, pos, x)
End SubPrivate Sub Command3_Click()
Dim pos As Integer
pos = InputBox("请输入需要删除的位置:", "插入的位置", 3)
Call DeleteA(a, num, pos)
End SubPrivate Sub Command4_Click()
Print "数组的平均值是:"; Average(a, num)
Print "数组的最大值是:"; Max(a, num)
Print "数组的最小值是:"; Min(a, num)
End SubPrivate Sub Command5_Click()
Call orderA(a, num)
End Sub
Private Sub Command6_Click()
EndEnd Sub这是Form窗口 下面是这个相应的模块Public Sub printA(a() As Integer, num As Integer)
Dim i As Integer
For i = 1 To num
Form1.Print a(i)
Next i
Form1.Print
End SubPublic Sub BuildA(a() As Integer, num As Integer)
Dim i As Integer
Randomize
For i = 1 To num
a(i) = Int(Rnd * 100)
Next i
Form1.Print "数据中的初始值为:"
Call printA(a, num)
End SubPublic Sub InsertA(a() As Integer, num As Integer, p As Integer, x As Integer)If n = 8 Or p > num Then
MsgBox "超出范围!", 0
Else
Dim i As Integer
For i = num To p Step -1
a(i + 1) = a(i)
Next i
a(p) = x
num = num + 1
Form1.Print "执行插入之后的数组:"
Call printA(a, num)
End If
End SubPublic Sub DeleteA(a() As Integer, num As Integer, p As Integer)
If num = 0 Then
MsgBox "数组已空!", 0
Else
If p > num Then
MsgBox "位置越界!", 0
Else
Dim i As Integer
For i = p + 1 To num
a(i - 1) = a(i)
Next i
num = num - 1
Form1.Print "执行删除操作后的数组:"
Call printA(a, num)
End If
End SubPublic Function Average(a() As Integer, num As Integer) As Integer
Dim temp As Integer
For i = 1 To num
Sum = Sum + a(i)
Next i
Average = Sum / num
End FunctionPublic Function Max(a() As Integer, num As Integer) As Integer
Dim temp As Integer
For i = 1 To num
If temp < a(i) Then
temp = a(i)
Next i
Max = temp
End Function
Public Function Min(a() As Integer, num As Integer) As Integer
Dim temp As Integer
temp = a(i)
For i = 2 To num
If temp > a(i) Then
temp = a(i)
Next i
Min = temp
End Function
Public Sub orderA(a() As Integer, num As Integer)
Dim i As Integer
Dim temp As Integer
Dim posmin As Integer
For j = i + 1 To num
If a(posmin) > a(j) Then
posmin = j
Next j
temp = a(i): a(i) = a(posmin): a(posmin) = temp
Next i
Form1.Print
Form1.Print "执行排序操作后的数组"
Call printA(a, num)
End Sub
为啥最后总是出现 编译错误~~
Dim num As IntegerPrivate Sub Form_Load()
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
End SubPrivate Sub Command1_Click()
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
num = 5
Call BuildA(a, num)
Command1.Enabled = False
End SubPrivate Sub Command2_Click() Dim pos As Integer
Dim x As Integer
pos = InputBox("请输入需要插入的位置:", "插入的位置", 3)
x = InputBox("请输入需要插入的数直:", "插入的数值", 9)
Call InsertA(a, num, pos, x)
End SubPrivate Sub Command3_Click()
Dim pos As Integer
pos = InputBox("请输入需要删除的位置:", "插入的位置", 3)
Call DeleteA(a, num, pos)
End SubPrivate Sub Command4_Click()
Print "数组的平均值是:"; Average(a, num)
Print "数组的最大值是:"; Max(a, num)
Print "数组的最小值是:"; Min(a, num)
End SubPrivate Sub Command5_Click()
Call orderA(a, num)
End Sub
Private Sub Command6_Click()
EndEnd Sub这是Form窗口 下面是这个相应的模块Public Sub printA(a() As Integer, num As Integer)
Dim i As Integer
For i = 1 To num
Form1.Print a(i)
Next i
Form1.Print
End SubPublic Sub BuildA(a() As Integer, num As Integer)
Dim i As Integer
Randomize
For i = 1 To num
a(i) = Int(Rnd * 100)
Next i
Form1.Print "数据中的初始值为:"
Call printA(a, num)
End SubPublic Sub InsertA(a() As Integer, num As Integer, p As Integer, x As Integer)If n = 8 Or p > num Then
MsgBox "超出范围!", 0
Else
Dim i As Integer
For i = num To p Step -1
a(i + 1) = a(i)
Next i
a(p) = x
num = num + 1
Form1.Print "执行插入之后的数组:"
Call printA(a, num)
End If
End SubPublic Sub DeleteA(a() As Integer, num As Integer, p As Integer)
If num = 0 Then
MsgBox "数组已空!", 0
Else
If p > num Then
MsgBox "位置越界!", 0
Else
Dim i As Integer
For i = p + 1 To num
a(i - 1) = a(i)
Next i
num = num - 1
Form1.Print "执行删除操作后的数组:"
Call printA(a, num)
End If
End SubPublic Function Average(a() As Integer, num As Integer) As Integer
Dim temp As Integer
For i = 1 To num
Sum = Sum + a(i)
Next i
Average = Sum / num
End FunctionPublic Function Max(a() As Integer, num As Integer) As Integer
Dim temp As Integer
For i = 1 To num
If temp < a(i) Then
temp = a(i)
Next i
Max = temp
End Function
Public Function Min(a() As Integer, num As Integer) As Integer
Dim temp As Integer
temp = a(i)
For i = 2 To num
If temp > a(i) Then
temp = a(i)
Next i
Min = temp
End Function
Public Sub orderA(a() As Integer, num As Integer)
Dim i As Integer
Dim temp As Integer
Dim posmin As Integer
For j = i + 1 To num
If a(posmin) > a(j) Then
posmin = j
Next j
temp = a(i): a(i) = a(posmin): a(posmin) = temp
Next i
Form1.Print
Form1.Print "执行排序操作后的数组"
Call printA(a, num)
End Sub
为啥最后总是出现 编译错误~~
解决方案 »
- 如何用vba处理超过32767行的excel文件。
- MDI窗体能加图形菜单吗
- 菜鸟做的彩票机选程序问题,请大侠进来看一看
- 一个久悬未决的问题!如何让无标题栏窗体在任务栏上显示的图标的右键菜单中“关闭”命令真正起到关闭程序的作用?
- 水晶报表数据源的问题
- 求助电子邮件客户端软件
- 请问在添加 OCX 控件时,出现“未设置对象变量,或with block变量是怎么回事?
- 怎样在SQL7.0桌面版中导入ACCESS的数据库
- 你知道怎么动态创建DSN么(除了用RDO的RegistDataSoure方法)
- 请问combo控件的双击事件为何不起作用?
- 请教 vb ado 读取 adVarChar 类型数据
- vb6调试程序时,退出程序,会导致vb IDE整个环境退出,怎么回事?
Dim a(1 To 8) As Integer
Dim num As IntegerPrivate Sub Form_Load()
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
End SubPrivate Sub Command1_Click()
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
num = 5
Call BuildA(a, num)
Command1.Enabled = False
End SubPrivate Sub Command2_Click() Dim pos As Integer
Dim x As Integer
pos = InputBox("请输入需要插入的位置:", "插入的位置", 3)
x = InputBox("请输入需要插入的数直:", "插入的数值", 9)
Call InsertA(a, num, pos, x)
End SubPrivate Sub Command3_Click()
Dim pos As Integer
pos = InputBox("请输入需要删除的位置:", "插入的位置", 3)
Call DeleteA(a, num, pos)
End SubPrivate Sub Command4_Click()
Print "数组的平均值是:"; Average(a, num)
Print "数组的最大值是:"; Max(a, num)
Print "数组的最小值是:"; Min(a, num)
End SubPrivate Sub Command5_Click()
Call orderA(a, num)
End Sub
Private Sub Command6_Click()
EndEnd SubPublic Sub printA(a() As Integer, num As Integer)
Dim i As Integer
For i = 1 To num
Form1.Print a(i)
Next i
Form1.Print
End SubPublic Sub BuildA(a() As Integer, num As Integer)
Dim i As Integer
Randomize
For i = 1 To num
a(i) = Int(Rnd * 100)
Next i
Form1.Print "数据中的初始值为:"
Call printA(a, num)
End SubPublic Sub InsertA(a() As Integer, num As Integer, p As Integer, x As Integer)If n = 8 Or p > num Then
MsgBox "超出范围!", 0
Else
Dim i As Integer
For i = num To p Step -1
a(i + 1) = a(i)
Next i
a(p) = x
num = num + 1
Form1.Print "执行插入之后的数组:"
Call printA(a, num)
End If
End SubPublic Sub DeleteA(a() As Integer, num As Integer, p As Integer)
If num = 0 Then
MsgBox "数组已空!", 0
Else
If p > num Then
MsgBox "位置越界!", 0
Else
Dim i As Integer
For i = p + 1 To num
a(i - 1) = a(i)
Next i
num = num - 1
Form1.Print "执行删除操作后的数组:"
Call printA(a, num)
End If
End If
End SubPublic Function Average(a() As Integer, num As Integer) As Integer
Dim temp As Integer
For i = 1 To num
Sum = Sum + a(i)
Next i
Average = Sum / num
End FunctionPublic Function Max(a() As Integer, num As Integer) As Integer
Dim temp As Integer
For i = 1 To num
If temp < a(i) Then
temp = a(i)
End If
Next i
Max = temp
End Function
Public Function Min(a() As Integer, num As Integer) As Integer
Dim temp As Integer
temp = a(1)
For i = 2 To num
If temp > a(i) Then
temp = a(i)
End If
Next i
Min = temp
End Function
Public Sub orderA(a() As Integer, num As Integer)
Dim i As Integer
Dim temp As Integer
Dim posmin As Integer
For j = i + 1 To num
If a(posmin) > a(j) Then
posmin = j
Next j
temp = a(i): a(i) = a(posmin): a(posmin) = temp
Next i
Form1.Print
Form1.Print "执行排序操作后的数组"
Call printA(a, num)
End Sub
Public Sub InsertA(a() As Integer, num As Integer, p As Integer, x As Integer)If n = 8 Or p > num Then
MsgBox "³¬³ö·¶Î§£¡", 0
Else
Dim i As Integer
For i = num To p Step -1
a(i + 1) = a(i)
Next i
a(p) = x
num = num + 1
Form1.Print "Ö´ÐвåÈëÖ®ºóµÄÊý×é:"
Call printA(a, num)
End If
End Sub
这个过程 里面,If n = 8 Or p > num Then,n没有声明,也没有赋值,就这样引用是不行的。