2017-10-20 773 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'的值和類型是什麼,你遇到的錯誤號和描述等等。 –