当前位置:编程学习 > VB >>

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是否选中问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,