【问题标题】:Use a variable in multiple modules在多个模块中使用一个变量
【发布时间】:2013-09-29 15:37:59
【问题描述】:

我有一些代码和一些模块,我想访问其中的变量。

在我的启动模块中,我将变量声明为“公共”——我希望这能让我访问不同模块中的变量...

Option Explicit
Public Ttermanf, Ttermend, Date2, DateN, Ttermeld  As Date
Public ft, mainb_ret, swp, Tmod, Tsub4, Tslz4 As String

然后我从我的启动模块调用一个用户表单

Form1.show

在用户窗体上有一堆文本框、下拉列表等。通常的东西,到目前为止都在工作......

当我点击“button1”时,它会调用不同的模块——我试图拆分代码,这样我在表单上的代码就不会那么长,因此可以按逻辑分组。

call header_m

在这个模块中,我想拥有 Ttermend 的值,但令我惊讶的是它是空的 ....

在主窗体中,值在那里,但是当我跳转到另一个模块时,它们是空白的......

建议?我尝试使用全局,但同样的事情。

为什么?我认为通过将其声明为 public 它应该在任何模块中都可用?不是吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:
    1. 确保 Dims 位于标准模块中
    2. 确保 Dims 位于任何 Subs 或 Functions 之前
    3. 确保变量在使用前被赋值
    4. 修复 Dim 语法:

    使用:

    Dim a As String, b As String, c As String
    

    然后

    Dim a, b, c As String
    

    【讨论】:

    • 您好,请收下。奇怪的是,如果我将代码从模块中取出并将其直接粘贴回用户表单(代替调用...),一切都很好。我尝试将变量传递给模块call header_m(Ttermend),但也没有雪茄。
    • 刚刚创建了一个空白的简单工作簿,并在其中按预期工作。还是不明白为什么原来的那个不行。如果我在调用模块之前执行一个 MsgBox 来显示该值,则会分配该值。在模块中,首先是一个相同值的 MsgBox,它是空白的.. 很奇怪.. 我会去寻找更多。
    猜你喜欢
    • 2017-04-23
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多