ByVal 按值传递(ByValue),意思是传入的形式参数改变了,但是不影响实际参数的数值 
比如 
在一个函数fn()有参数para,是byval的, 
那么在函数里面如果有语句para=999, 
有变量dim p as integer = 100; 
那么调用 
fn(p) 
之后,p的值仍然是100,而不是999,函数里面的修改不影响外面的变量 谁能给我说详细点啊,最好些个函数解释一下,谢谢!

解决方案 »

  1.   

    private sub AA()
        dim strTemp as string
        dim strTempA as string    strTemp = "abc"   '初始值
        strTempA = "bcd"  '初始值
        
        '调用BB
        Call BB(strTemp,strTempA)  '当参数传入
        
        '在这里输出的话,你会看到strTemp还是abc,而strTempA已经变成ddd了
         '这个差不多就是最基本的应用吧
    end subprivate sub BB(byval str1 as string, byref str2 as string)'byref会回传
        str1 = "ccc"
        str2 = "ddd"
    end sub
      

  2.   

    http://topic.csdn.net/u/20081030/21/a7482864-3660-40e6-aac7-6b8dde7d8227.html
      

  3.   

    Private Sub Command1_Click()
    Dim i As Integer
    i = 100
    Debug.Print i  '原始数据100
    Changei (i)
    Debug.Print i  '实际上i还是100,没有变化
    End Sub
    Private Sub Changei(ByVal i As Integer)
        i = i + 100  '数据加100,变成200
        Debug.Print i
    End Sub
      

  4.   

    其实是这样啦如果在一个函数fn()有参数para,是byval的, 
    那么在函数里面如果有语句para=999, 
    有变量dim p as integer = 100; 那么fn(p) p还是100
    fn p  p是999
    call fn(p) p是999