Private Sub Option10_Click()
    Print "Option10"
End SubPrivate Sub Command1_Click()
    Call Option10_Click '调用Private Sub Option10_Click()
End Sub 
 

解决方案 »

  1.   

    Call 语句
    将控制权转移到一个 Sub 过程,Function 过程,或动态链接库 (DLL) 过程。语法[Call] name [argumentlist]Call 语句的语法具有以下几个部分:部分 描述
    Call 可选参数;关键字。如果指定了这个关键字,则 argumentlist 必须加上括号,例如:
    Call MyProc(0)
    name 必要参数,要调用的过程名称。
    argumentlist 可选参数,传递给过程的变量、数组、或表达式的列表,各参数间以逗号隔开。argumentlist 的每个参数都可以加上关键字 ByVal 或 ByRef,来描述被调用的过程将如何处理这些参数。不过,ByVal 和 ByRef 只能用于调用 DLL 过程的 Call语句。
    说明调用一个过程时,并不一定要使用 Call 关键字。如果使用 Call 关键字来调用一个需要参数的过程,argumentlist 就必须要加上括号。如果省略了 Call 关键字,那么也必须要省略 argumentlis 外面的括号。如果使用 Call 语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。若要将整个数组传给一个过程,使用数组名,然后在数组名后加上空括号。
    下列示例示范如何使用 Call 语句来将控制转移到 Sub 过程、内在函数、动态链接库(DLL)过程。' 调用一个子过程。
    Call PrintToDebugWindow("Hello World")
    ' 上面的语句将控制转移到下面的子过程。
    Sub PrintToDebugWindow(AnyString)
    Debug.Print AnyString ' 在“调试”窗口中显示。
    End Sub' 调用一个内在函数,函数的返回值被忽略不处理。
    Call Shell(AppName, 1) ' AppName 包含可执行文件的路径。' 调用 Microsoft Windows DLL 过程。该声明语句必需是类模块中的私有的,而不是标准模块中的。
    Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
    Sub CallMyDll()
    Call MessageBeep(0) ' 调用 Windows DLL 过程。
    MessageBeep 0 ' 再次调用,但不用“Call”这个关键字。
    End Sub
      

  2.   

    function a() as long要返回值的函数call a关心过程而不是返回值
      

  3.   


    用call函数没有返回值,下面有一例private function aaa(bb as integer,cc as integer) as long 
      

  4.   


    用call函数没有返回值,下面有一例:private function aaa(bb as integer,cc as integer) as long end function call aaa(12,23)
    aaa 12,23
    上面的两个作用相同
    comlong=aaa(12,23)
      

  5.   

    在调用过程时用call语句和不用call语句有什么区别,谢谢