【问题标题】:VBA 6 + how to export variable to click buttonVBA 6 +如何将变量导出到单击按钮
【发布时间】:2012-07-14 20:43:43
【问题描述】:

我创建了以下 VB6 代码,并在我的表单上创建了两个控件 - Combo1(列表框)和 Command3(一个按钮)。

当我从Combo1 列表中选择一个项目时,我将一个字符串分配给表单范围变量param,并将其显示在一个消息框中,然后将其关闭。

但是当我然后单击Command3 按钮并尝试在消息框中显示相同的param 变量时,则没有存储任何值。

这是我的代码:

Dim param As String

Sub Form_load()

    Combo1.AddItem "linux ver"
    Combo1.AddItem "linux ver"

End Sub

Sub Combo1_Click()

    If Combo1.ListIndex = 0 Then
        param = "linux 5.1"
        MsgBox param
    End If

    If Combo1.ListIndex = 1 Then
        param = "linux 5.5"
        MsgBox param
    End If

End Sub

Sub Command3_Click()

    MsgBox "param" & param

End Sub

我做错了什么?

【问题讨论】:

  • 您的问题与 Serverfault 无关。它可能是Stackoverflow 的主题,但在询问之前请查看他们的faqsearch 他们的网站。
  • 嗨@lain请将我的问题发送到stackoverflow,

标签: visual-studio vb6


【解决方案1】:

看起来这是由于Variable Scope。您需要在 Combo1_Click() 子例程之外定义“param”,因为就目前而言,param 仅存在并且可在该例程中访问。

【讨论】:

  • 我定义了它 - 但仍然 command3_click 不打印参数值?
  • @yael 好吧,你在哪里定义的?您是否阅读(并理解)我发布的链接?
  • 我在 Combo1_Click() 之外将其定义为您的建议,但我仍然没有得到值 -:( ,
  • 好吧,因为这不是 SF 的主题,我不确定我应该花多少时间来解决这个问题,但问题肯定是可变范围。你能发布你的新代码吗?
  • 尝试按照此处的说明打开“选项显式”。我发现它有助于缩小变量问题的范围:msdn.microsoft.com/en-us/library/y9341s4f(v=vs.80).aspx
【解决方案2】:

如果 Combo1.ListIndex 为 -1 会怎样?还是 2 个?

永远不会分配您的 param 变量,您看到的行为正是预期的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多