码迷,mamicode.com
首页 > 编程语言 > 详细

vba中变量作用域

时间:2017-08-30 13:03:05      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:read   int   二义性   就会   comm   idt   exce   www.   body   

 


全局变量例子
public 变量1 AS Integer
Sub LLL()
变量1 = 1111
End Sub


模块级变量例子
DIM 变量1 AS Integer
Sub LLL()
变量1 = 1111
End Sub

我有a、b、c三个宏模块,每个里面都有一个变量 dim sj as date, 这三个模块使用时都会调用另外一个模块d模块,怎么才能a、b、c每个模块调用d模块时,都能把变量sj传递到d模块呢?

我现在a模块sub 上面最上一行 写上Public sj As Date 后,a模块运行sj变量可以传递到d模块
当我把a、b、c每个模块sub上面最上一行都加上Public sj As Date 后,每个模块运行到d模块后,就会出错,提示:发现二义性名称

请问各位老师,该怎么弄才能让a、b、c三个模块sj变量都能传递到d模块呢?


最后总算解决了:abc三个模块,不管哪个模块,运不运行,只需在任意一个(也只能一个)上面加个全局变量 Pablic就可以了

我是2个以上模块都加了相同的全局变量出问题的。


模块级变量应该放在本模块的最上端,不是在过程中,下面两句会出错
Dim x As String
x = "user"

如果该模块为标准模块,可以这样试试:

Dim x As String

Sub auto_open() ‘打开工作簿自动运行
    x = "user"
End Sub

Sub abc()
    MsgBox x
End Sub

 

vba中变量作用域

标签:read   int   二义性   就会   comm   idt   exce   www.   body   

原文地址:http://www.cnblogs.com/zhubinglong/p/7452338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!