嗯,我认为,主要是你加了一个括号,
Call Modify(sTest)使用了Call调用,认为是所有的参数按引用调用
Modify sTest 相当于是直接调用,也是按引用传递,等于Call Modify (sTest)
而Modify (sTest)是按值传递,当然没有改变结果了

解决方案 »

  1.   

    VB参数的传递方法和QB不太一样
      

  2.   

    确实是加了一个括号的原因,不过哪本VB的书也没有讲到这个问题的啊?
    MSDN好象也没有提示要注意这一点的。
      

  3.   

    这种情况下,传替参数最好显式的写明 ByVal 或 ByRef
    以免产生不必要的麻烦。
      

  4.   

    调用一个过程时,并不一定要使用 Call 关键字。如果使用 Call 关键字来调用一个需要参数的过程,argumentlist 就必须要加上括号。如果省略了 Call 关键字,那么也必须要省略 argumentlis 外面的括号。如果使用 Call 语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。所以只要把Modify (sTest)改成Modify sTest,执行后sTest="11111"