设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 804|回复: 2
打印 上一主题 下一主题

[与其它组件] 菜鸟提问:急!为什么全局变量部全局?

[复制链接]
跳转到指定楼层
1#
发表于 2006-5-30 22:50:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是菜鸟,请各位高手大虾们帮帮忙!

在一个模块中写的代码:

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()中调用不出来?有什么办法可以调用吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2006-5-31 04:04:00 | 只看该作者
急啊!
3#
发表于 2006-5-31 04:22:00 | 只看该作者
在sumI的Function中,无论D怎样变下面的代码也不会改变,当然不会传递数值

  For D = 0 To 20
      D = D + 1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-13 17:17 , Processed in 0.086607 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表