thisworkbook与模块之间如何传值

  • 原创
  • |
  • 浏览:3835
  • |
  • 更新:
  • |
  • 标签:VBA 

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

thisworkbook与模块之间如何传值

环境准备

  1. 1

    打开VBA工程

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

    thisworkbook与模块之间如何传值
  2. 1
    此文章非法爬取自百度经验
  3. 2

    添加一个模块

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

    thisworkbook与模块之间如何传值
    END

通过全局变量来传值

  1. 1

    定义全局变量

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

    Public g_strGlobalVariable    As String

    Public Sub Test1()

        MsgBox g_strGlobalVariable

    End Sub

  2. 2

    在ThisWorkBook中使用全局变量

    在ThisWorkBook中定义一个方法,在方法中给全局变量赋值,再调用模块中的公共方法,显示该全局变量的值。

    Public Sub TestGobalVariable()

        g_strGlobalVariable = "123"

        Call Test1

    End Sub

    thisworkbook与模块之间如何传值
  3. 3

    测试代码

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

    thisworkbook与模块之间如何传值
    END

通过公共属性来传值

  1. 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

    thisworkbook与模块之间如何传值
  2. 2

    在模块中使用ThisWorkBook中的公共属性

    在模块中添加如下代码,给ThisWorkBook的公共属性P1赋值。

    Public Sub Test2()

        ThisWorkbook.P1 = "456"

    End Sub

    thisworkbook与模块之间如何传值
  3. 3

    在ThisWorkBook中增加调用公共方法Test2的代码

    Public Sub TestGobalVariable()

        g_strGlobalVariable = "123"

        Call Test1

        Call Test2

    End Sub

    thisworkbook与模块之间如何传值
  4. 4

    测试代码

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

    thisworkbook与模块之间如何传值
    END

注意事项

  • 本经验还会不断补充和完善,直到有一天我们发现这篇经验已无存在价值。
  • 如果有朋友喜欢这篇经验,请为我点赞,后续还会为大家分享更多经验,有兴趣的亲们可以点击关注我。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签VBA