VBA的模块、类、窗体之间传值的方法有很多,可以通过全局变量、公共属性、文件、Socket、数据库等方式来传值,比较常见是传值方式是全局变量和公共属性。本文说明ThisWorkBook与模块之间如何通过全局变量和属性来传值。

环境准备
-
1
打开VBA工程
打开Excel,按下 Alt+F11,打开VBA工程。
-
2
添加一个模块
右键单击Microsoft Excel对象文件夹,选择右键菜单中的插入->模块,添加一个模块。
END
通过全局变量来传值
-
1
定义全局变量
定义在模块中的public变量就是全局变量,全局变量可以在任何窗体、类和模块中访问。在模块中增加如下代码,定义一个名称为g_strGlobalVariable 的全局变量,再定义一个公共方法,用MsgBox显示该 变量的值。
Public g_strGlobalVariable As String
Public Sub Test1()
MsgBox g_strGlobalVariable
End Sub
-
2
在ThisWorkBook中使用全局变量
在ThisWorkBook中定义一个方法,在方法中给全局变量赋值,再调用模块中的公共方法,显示该全局变量的值。
Public Sub TestGobalVariable()
g_strGlobalVariable = "123"
Call Test1
End Sub
-
3
测试代码
将光标定位在ThisWorkBook中的TestGobalVariable方法内,按下F8,可以启动单步调试,连续按F8,或按F5,就可以运行完成,可以看出在模块中的MsgBox显示出了在ThisWorkBook中赋值结果。
END
通过公共属性来传值
-
1
定义公共属性
在ThisWorkBook中定义一个名称为P1的公共属性,在P1属性的赋值方法中显示赋值结果。
Private m_strP1 As String
Public Property Get P1() As String
P1 = m_strP1
End Property
Public Property Let P1(ByVal strValue As String)
m_strP1 = strValue
MsgBox strValue
End Property
-
2
在模块中使用ThisWorkBook中的公共属性
在模块中添加如下代码,给ThisWorkBook的公共属性P1赋值。
Public Sub Test2()
ThisWorkbook.P1 = "456"
End Sub
-
3
在ThisWorkBook中增加调用公共方法Test2的代码
Public Sub TestGobalVariable()
g_strGlobalVariable = "123"
Call Test1
Call Test2
End Sub
-
4
测试代码
将光标定位在模块中的Test2方法内,按下F8,可以启动单步调试,连续按F8,或按F5,就可以运行完成,可以看出在模块中的MsgBox显示出了在模块中赋值结果。
END
文章评论