在VBA中怎么样在一个宏中调用另一个宏的变量?
2个回答
展开全部
你可以将数组直接定义成模块级变量。
例如:
Dim arr(1 to 10) as Integer
Sub A()
dim i as byte
For i = 1 to 10
arr(i) = i * 2
next
end Sub
Sub B()
Msgbox arr(3) '运行结果为6
ENd sub
上面的代码中arr()数组就是一个模块级的数组,在本模块中的任何一个Sub都可以调用其数值。
上面的代码先运行Sub A,对数组赋值,然后运行Sub B,调用数组元素,可以发现,数组元素的值已经被改变了!
追问
额,我觉得我提问问题是不是提问错了……按照你这个解释,我应该是希望在不同模块间调用变量……
追答
如果是在不同模块间调用数组,那么你需要定义一个全局变量,通过这个全局变量,我们可以在本工程的任意模块,甚至类模块间进行调用。
使用的方法是:
1、创建一个标准模块
2、在标准模块顶部定义一个Public全局变量arr()
Public arr(1 to 10) as Integer
3、在模块1中加入代码:
Sub A()
dim i as byte
For i = 1 to 10
arr(i) = i * 2
Next
end Sub
4、在模块2中加入代码:
Sub B()
Msgbox arr(3) '运行结果为6
ENd sub
上面过程完成之后,先运行模块1中的代码A,然后运行模块2中的Sub B,我们可以得到6这个结果。也就完成了跨模块使用变量。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询