Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 16454|回复: 15

[已解决]excel宏多个模块如何定义同一个全局变量

[复制链接]
发表于 2014-11-4 17:22 | 显示全部楼层 |阅读模式
本帖最后由 水中游 于 2014-11-7 15:10 编辑

我有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个以上模块都加了相同的全局变量出问题的。
最佳答案
2014-11-4 17:39
就定义一个公共变量就行了

模块.zip

11.31 KB, 下载次数: 27

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-11-4 17:37 来自手机 | 显示全部楼层
回复

使用道具 举报

发表于 2014-11-4 17:39 | 显示全部楼层    本楼为最佳答案   
就定义一个公共变量就行了

评分

参与人数 1 +1 收起 理由
水中游 + 1 谢谢了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-11-5 14:10 | 显示全部楼层
Select 发表于 2014-11-4 17:37
看了附件,理解了需求,才好说

代码在模块里面上传附件,好像上传不了:
大概这样:
sub 模块a()
dim sj as date
call 模块d
end sub

sub 模块b()
dim sj as date
call 模块d
end sub

sub 模块c()
dim sj as date
call 模块d
end sub

sub 模块d
range("a1")=sj
end sub

回复

使用道具 举报

 楼主| 发表于 2014-11-5 14:10 | 显示全部楼层
Select 发表于 2014-11-4 17:37
看了附件,理解了需求,才好说

代码在模块里面上传附件,好像上传不了:
每次模块abc都是单独使用的,大概这样:
sub 模块a()
dim sj as date
call 模块d
end sub

sub 模块b()
dim sj as date
call 模块d
end sub

sub 模块c()
dim sj as date
call 模块d
end sub

sub 模块d
range("a1")=sj
end sub

回复

使用道具 举报

 楼主| 发表于 2014-11-5 14:15 | 显示全部楼层
qh8600 发表于 2014-11-4 17:39
就定义一个公共变量就行了

a、b、c  3个模块都是单独使用的,怎么设置,在哪设置全局变量呢?
回复

使用道具 举报

发表于 2014-11-5 14:23 | 显示全部楼层
水中游 发表于 2014-11-5 14:15
a、b、c  3个模块都是单独使用的,怎么设置,在哪设置全局变量呢?

模块上面
全局变量
sub t()
......
end sub
sub x()
....
end sub
回复

使用道具 举报

发表于 2014-11-5 14:24 | 显示全部楼层
水中游 发表于 2014-11-5 14:15
a、b、c  3个模块都是单独使用的,怎么设置,在哪设置全局变量呢?

模块上面 如下
全局变量
sub t()
......
end sub
sub x()
....
end sub
回复

使用道具 举报

发表于 2014-11-5 14:30 来自手机 | 显示全部楼层
还是等看了附件,理解了需求,再看吧。
附件需要先压缩,不能过大,多试下上传看看?
回复

使用道具 举报

 楼主| 发表于 2014-11-5 15:34 | 显示全部楼层
qh8600 发表于 2014-11-5 14:24
模块上面 如下
全局变量
sub t()

全局变量是用 Public sj As Date  这个吗?

abc三个模块不是同时使用的,三个模块有不同功能,每次只使用其中一个,比如在a模块sub上上一行加上Public sj As Date 后,这个a模块就传递变量了,但是不用a模块时,用b或c模块时,就不能传递变量了?



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 10:30 , Processed in 0.315014 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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