2017-10-20 772 views
0

我的问题是能够使用vba在列表框中选择行。 我的程序循环遍历一个表,并找到列表框的值,即一个整数/行号,并将其设置为一个变量,类似于列表框名称。使用vba选择列表框项

因此listbox name = variable LstName
ListBox value = strvalue as integer。

我想然后在列表框中选择该行,使其突出显示 我只是无法让它工作。如果我使用实际名称和数值,它可以很好地工作,但是me.LstName.selected(strValue) = True会产生错误

+1

选择strValue你能解释一下什么错误是? - 谢谢:) – Dman

回答

1

这不是列表框的工作方式。 LstName.Selected(iRow as Long) As Long只需要数字,并返回-1为真,0为假。

如果你想设置基于字符串列表框的项目,您可以使用以下命令:

Public Sub ListboxSelectString(lstListbox As ListBox, strToSelect As String, Optional SelectDeselect As Boolean = True) 
    Dim i As Integer 
    For i = 0 To lstListbox.ListCount - 1 
     If lstListbox.ItemData(i) = strToSelect Then 
      lstListbox.Selected(i) = SelectDeselect 
     End If 
    Next i 
End Sub 

然后你可以使用ListboxSelectString Me.LstName, strValueMe.LstName

+0

嗨,谢谢你,我会放弃一切,hpfully一切都会好起来的 –

+0

嗨,我有点不清楚,这很抱歉...我已经有我想要的行数在列表框中选择我只想从数字中选择该项目。我的代码是循环浏览表单并将控件写入临时表格,然后将控制值插入到表格中。之后,我可以使用命令按钮离开表单.....当im完成时,我想返回表单并从临时表中写回值。一些控件是列表框,我有0到n的数字....我遇到的问题是如何再次选择列表中的记录。谢谢 –

+0

然后请提供一个完整的描述(你的列表框的值是什么('ListCount'),你的'strValue'的值和类型是什么,你遇到的错误号和描述等等。 –