Office中国论坛/Access中国论坛

标题: 菜鸟提问:急!为什么全局变量部全局? [打印本页]

作者: chenkai_c    时间: 2006-5-30 22:50
标题: 菜鸟提问:急!为什么全局变量部全局?
我是菜鸟,请各位高手大虾们帮帮忙!

在一个模块中写的代码:

Option Compare Database
Public I As Integer
Function sumI(ByRef D As Integer)
    For D = 0 To 20
        D = D + 1
        Debug.Print D
    Next
End Function

Function DebugI(ByRef F As Integer)
        Debug.Print F
End Function
Sub Main()
    sumI (I)
    DebugI (I)
End Sub

执行结果如下:

1
3
5
7
9
11
13
15
17
19
21
0

为什么变量不按照引用传递?为什么在sumI()中改变不了I的值?

还有就是在一个模块中定义了一个全局数组如下:

public Array(10) As String

Public Sub1()

      在此改变Array()的值

End Sub

Public Sub2()

     在此调用Array()的值

End Sub

为什么Sub1()中改变了Array()的值,在Sub2()中调用不出来?有什么办法可以调用吗?
作者: chenkai_c    时间: 2006-5-31 04:04
急啊!
作者: andymark    时间: 2006-5-31 04:22
在sumI的Function中,无论D怎样变下面的代码也不会改变,当然不会传递数值

  For D = 0 To 20
      D = D + 1





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3