vba中变量作用域

参考:http://club.excelhome.net/thread-1237085-1-1.html

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

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


参考:http://www.excelpx.com/thread-334103-1-1.html

我有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

时间: 2024-10-12 21:30:20

vba中变量作用域的相关文章

PHP和JS中变量作用域

一,PHP中变量作用域 对于大多数PHP的变量只有一个作用域.在用户自定义函数里采用局部变量作用域.所有的函数内使用的变量被设置为局部变量.例如: <?php $a=1; function test() { echo $a; } test(); ?> 这段程序不会输出任何的东西因为echo语句要输出局部变量 $a ,而函数内的 $a 从未被赋过值.你可能注意到和C语言有点小小的区别,C中全局变量可以直接在函数内引用,除非它被一个局部变量所覆盖.因为这使得人们可能不注意修改了全局变量的值.在PH

HTML5 | Canvas中变量作用域与setInterval()方法的影响

Demo - 随机绘制圆环 实现思路: 将一个圆环的绘制分成100份,setInterval()方法定义每隔时间n绘制一段新的,每份的开始路径都是上一次的结束路径,实现步进绘制. 通过Math.random(),随机生成圆的坐标半径颜色. 实现方法: 定义画布和联系 设置步进属性 设置随机圆属性(5个参数:x,y,半径,开始,结束,方向) 循环执行绘画 <<index.html>> <!DOCTYPE html> <html> <head> &l

erlang中变量作用域

http://erlangdisplay.iteye.com/blog/315452 erlang中变量只能一次赋值,这么“苛刻“的要求下,更别想拥有全局变量了. 变量只在function中存在,这就是函数编程语言的特色. 对于函数参数对应的变量从执行函数开始,到函数执行结束(从咱们编程者的角度来看的确如此,至于从运行时,GC的角度看,咱们就不深究了). 比如下面的函数: Erlang代码   test1(V) -> io:format("V is:~p~n", [V]), % 

Javascript中变量作用域

1 <script type="text/javascript"> 2 var a = 10; 3 4 var Bar = (function () { 5 console.log(a); //undefine 6 var a = 20; 7 return function () { a += 1; console.log(a); }; 8 })(); 9 Bar(); 10 Bar(); 11 </script> 看上面一段代码,当声明全局变量a后,在函数表达

对Java中变量作用域理解

昨天写一个java小程序测试与oracle数据库的连接,小程序如下: package com.test; import java.sql.*; public class procedure { public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection ct=DriverManager.getConnection("jdb

php学习笔记4--php中的变量作用域

变量作用域:可以简单地理解为变量的可见区域,变量能被访问的范围.如同其他语言,php中也有全局作用域和局部作用域之分,但是不同的是:php中的全局作用域指的是:只能在函数外部使用,而局部作用域指的是:只能在函数内部使用.php中的全局变量指的是:在函数外部定义,一般来说只能在函数外部被访问,不能直接在函数内部可见的变量:而局部变量指的是:在函数内部定义,只能在函数内部访问的变量.$name = "csc";function test(){ echo $name; //运行该脚本则会提示

注意for循环中变量的作用域

for e in collections: pass 在for 循环里, 最后一个对象e一直存在在上下文中.就是在循环外面,接下来对e的引用仍然有效. 这里有个问题容易被忽略,如果在循环之前已经有一个同名对象存在,这个对象是被覆盖的. 如果在有代码感知的IDE中, IDE会提示变量是“被重新声明的”, 但运行时却不会出错. for循环不是闭包,可以使用dis模块分解以下代码可以看到: x = 5 for x in range(10): pass print x 将代码保存到test.py文件,运

JavaScript 中变量、作用域和内存问题的学习

这是我学习JavaScript的第二篇文章,之前做过几年的Java开发,发现JavaScript虽然也是面向对象的语言但是确实有很多不同之处.就本篇博客,主要学习总结一下最近学习到的JavaScript的知识,其中有些是网络上的,不过对于理解JavaScript,和在工作总是会很实用的,所以总结了下来: 那么就开始吧,首先是变量 在JavaScript中变量分为两种:一种是基本类型,基本类型值在内存中占用固定大小的空间,因此被保存在栈内存中.从一个变量向另一个变量复制基本类型的值,会创建这个值的

Python中变量的作用域(variable scope)

http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 """ 4 ------------------------------------------------------------------------------- 5 Function: 6 [整理