VBA ListBox - 所选值返回空白

VBA ListBox - Selected Value is Returning a Blank

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

如果用户 select 使用其中一个单选按钮,他们会从第一个列表框中获得一系列 select 的项目。一旦他们 select 来自第一个 ListBox,第二个 ListBox 就会填充项目。

如果它们 select 其他单选按钮,则两个列表框只会填充一个值“不适用”,我会立即 select 处理它。

这是我用来将两个 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

这是我获取值的代码 selected

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

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

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

我不知道这是错误还是我的代码有问题。

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

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

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

MS 表单注意事项 Value 属性

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

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

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