多语言展示
当前在线:193今日阅读:91今日分享:37

thisworkbook与模块之间如何传值

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

打开VBA工程打开Excel,按下 Alt+F11,打开VBA工程。

2

添加一个模块右键单击Microsoft Excel对象文件夹,选择右键菜单中的插入->模块,添加一个模块。

通过全局变量来传值
1

定义全局变量定义在模块中的public变量就是全局变量,全局变量可以在任何窗体、类和模块中访问。在模块中增加如下代码,定义一个名称为g_strGlobalVariable 的全局变量,再定义一个公共方法,用MsgBox显示该 变量的值。Public g_strGlobalVariable    As StringPublic Sub Test1()    MsgBox g_strGlobalVariableEnd Sub

2

在ThisWorkBook中使用全局变量在ThisWorkBook中定义一个方法,在方法中给全局变量赋值,再调用模块中的公共方法,显示该全局变量的值。Public Sub TestGobalVariable()    g_strGlobalVariable = '123'    Call Test1End Sub

3

测试代码将光标定位在ThisWorkBook中的TestGobalVariable方法内,按下F8,可以启动单步调试,连续按F8,或按F5,就可以运行完成,可以看出在模块中的MsgBox显示出了在ThisWorkBook中赋值结果。

通过公共属性来传值
1

定义公共属性在ThisWorkBook中定义一个名称为P1的公共属性,在P1属性的赋值方法中显示赋值结果。Private m_strP1 As StringPublic Property Get P1() As String    P1 = m_strP1End PropertyPublic Property Let P1(ByVal strValue As String)    m_strP1 = strValue    MsgBox strValueEnd 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 Test2End Sub

4

测试代码将光标定位在模块中的Test2方法内,按下F8,可以启动单步调试,连续按F8,或按F5,就可以运行完成,可以看出在模块中的MsgBox显示出了在模块中赋值结果。

注意事项
1

本经验还会不断补充和完善,直到有一天我们发现这篇经验已无存在价值。

2

如果有朋友喜欢这篇经验,请为我点赞,后续还会为大家分享更多经验,有兴趣的亲们可以点击关注我。

推荐信息