访问VBA ListBox ItemData Variant始终为1

时间:2016-02-19 18:00:43

标签: vba listbox

我有一个包含多个列表框的表单,所有工作都可以保存1!这是唯一一个源为数字数据类型的列表框。我知道这应该没关系,但我所看到的是,对于这个列表框只有返回的变量总是1,我无法理解为什么其他(数据类型文本)正常工作而这一个没有。我的所有Google搜索和MSN搜索以及StackOverflow上的搜索都没有帮助我解决我的问题,尽管有很多关于ListBoxes的问题。请帮忙!

编辑:对不起@Mat's Mug ......我希望没有必要,因为所有的检查都很冗长,但这就是要点。

For Each ctl In Form.Controls
       With ctl
            Select Case .ControlType

               Case acListBox

               If .Visible = True Then
                   .SetFocus
                   ItemCount = .ItemsSelected.Count

                   If .ItemsSelected.Count > 0 Then

                       For Each varItm In .ItemsSelected

                          If .Name = "lstRating" Then
                              sWhereClause = sWhereClause & "ThisRating=" & .ItemData(varItem) & " Or ThatRating = " & .ItemData(varItem)
                          Else
                              sWhereClause = sWhereClause & Mid(.Name, 4, Len(.Name)) & " = """ & .ItemData(varItm) & """"
                          End If

                       Next varItm
                   End If

               End If

           End Select
     End With
Next ctl

注意:当.Name =“lstRating”为True时,无论选择什么,varItem返回的行都是1。列表框中填充的值为1到5,增量为0.5。

1 个答案:

答案 0 :(得分:0)

好吧,我不敢相信我几个小时都在忽视它...当它在varItm中定义时,我在违规行使用varItem,没有“e”!完全是对我的疏忽。感谢所有人对此进行调查!