vb通用过程的问题
(Module1)
Public Sub multi(ParamArray numbers())
n = 1
For Each x In numbers
n = n * x
Next x
Print n
End Sub
(Form1)
Private Sub Form_Click()
multi 2, 3, 4, 5, 6
End Sub
为什么“没有适当的对象,方法无效”
而
(Form1)
Public Sub multi(ParamArray numbers())
n = 1
For Each x In numbers
n = n * x
Next x
Print n
End Sub
Private Sub Form_Click()
multi 2, 3, 4, 5, 6
End Sub
可以正常运行?
答案:“没有适当的对象,方法无效”,是因为print语句不能在模块中使用,修改如下:
(Module1)
Public Function multi(ParamArray numbers())
n = 1
For Each x In numbers
n = n * x
Next x
multi = n
End Function
(Form1)
Private Sub Form_Click()
Print multi(2, 3, 4, 5, 6)
End Sub
Print语句用于在当前窗体输出字符串,只能在窗体代码中使用,而模块是没有窗体的,所以会出错
其他:在我的VB6中前面的没问题。结果是720 Print n这句你所指的对象不明
改为form1.print n 这是因为Print命令是要指定对象才能使用的,比如:
Me.Print '当然,Me是可以省略的,但是在模块中就必须指定窗口了,如Form1.Print
Picture1.Print
所以你要么这样:
Form1.Print n
要么就在过程里面不用Print,而把过程改为自定义函数:
(Module1)
Public Function multi(ParamArray numbers())
n = 1
For Each x In numbers
n = n * x
Next x
multi = n
End Function
(Form1)
Private Sub Form_Click()
Print multi(2, 3, 4, 5, 6)
End Sub
上一个:vb程序哪里有错?在窗体装载事件中设置Shape18(0).Visible = True ,但是单击命令按钮,显示9,为什么?
下一个:vb 判断check是否选中问题