【问题标题】:VBA ListBox - Selected Value is Returning a BlankVBA ListBox - 所选值返回空白
【发布时间】:2023-04-09 05:41:01
【问题描述】:

我有一个带有一些单选按钮和两个单列 ListBox 的用户窗体。在某些情况下,我无法从第二个 ListBox 返回值。

如果用户选择其中一个单选按钮,他们会在第一个 ListBox 中获得一系列可供选择的项目。一旦他们从第一个 ListBox 中进行选择,第二个 ListBox 就会填充项目。

如果他们选择其他单选按钮,这两个 ListBox 只会填充一个值“不适用”,我会立即选择它。

这是我用来将两个 ListBox 设置为“不适用”的代码

ListBox_First.Clear
ListBox_Second.Clear
ListBox_First.List = Array("Not Applicable")
ListBox_First.Selected(0) = True
ListBox_Second.List = Array("Not Applicable")
ListBox_Second.Selected(0) = True

这是我获取所选值的代码

Dim firstValue As String
Dim secondValue As String
firstValue = ListBox_First.Value
secondValue = ListBox_Second.Value

firstValue 可以,因为它等于“不适用”,但是secondValue 等于“”。当您查看表单时,每个 ListBox 中的值看起来像是被选中的,所以我不明白为什么它是空白的。我检查了 ListCount 属性,每个 ListBox 只有一项,所以应该正确选择它。

如果我使用鼠标在第二个 ListBox 中手动选择“不适用”可以正常工作,但我试图避免用户在它是唯一值时必须选择它。

我不知道这是一个错误还是我的代码做错了什么。

我正在使用一种名为 WRQ Reflections 的产品。

【问题讨论】:

    标签: vba listbox userform


    【解决方案1】:

    MS Forms Value property 的注意事项

    除了 Dy.Lees 有效答案之外,请注意最好避免 .Value 并参考例如改为 ListBox2.List(0, 0)。

    另外请注意,由于 MS 帮助参考Value property MS Forms

    • .Value 仅反映“当前选中行的 ►BoundColumn 中的值”,即
    • 值不能与多选列表框一起使用

    【讨论】:

      【解决方案2】:

      通过添加 setfocus 命令识别该值。

      firstValue = ListBox_First.Value
      ListBox_Second.SetFocus
      secondValue = ListBox_Second.Value
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-29
        • 1970-01-01
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-28
        相关资源
        最近更新 更多