Excel用户窗体添加项目到列表框并标记为选定

填充列表框时,如何标记选定的项目?

For Ctr = LBound(MyArray) To UBound(MyArray) If LB1 = MyArray(Ctr) Then UserForm1.ListBox1.AddItem MyArray(Ctr) 'Add item and mark as selected Else UserForm1.ListBox1.AddItem MyArray(Ctr) 'Just add item End If Next 

当您将一个新项目添加到ListBox而没有将可选的varIndex参数指定给AddItem ,它将被添加到列表的末尾。 该项目的索引是ListCount - 1ListBox项目索引是基于0的)。 因此,为了在添加之后select它,您需要执行以下操作:

 UserForm1.ListBox1.Selected(UserForm1.ListBox1.ListCount - 1) = True 
 ' FROM MY UserForm_Initialize() SUB Dim LB1 As String LB1 = Cells(RW, 8) 'DATA FROM COLUMN 8 IN THE SELECTED ROW PUT IN THE VARIABLE LB1 PopulateListBox (LB1) 'THE FUNCTION CALLED Private Function PopulateListBox(ByVal LB1) 'MsgBox LB1 Dim MyArray As Variant Dim Ctr As Integer Dim i As Integer MyArray = Array("Yes", "No") For Ctr = LBound(MyArray) To UBound(MyArray) 'IF LB1 MATCHES THE ARRAY ITEM, TAKE THAT ITEMS KEY (Ctr) AND PUT IN VARIABLE i If LB1 = MyArray(Ctr) Then UserForm1.ListBox1.AddItem MyArray(Ctr) i = Ctr 'MsgBox i Else UserForm1.ListBox1.AddItem MyArray(Ctr) End If Next 'SHOW SELECTED LISTBOX ITEM BY ADDING i AS THE SELECTED LISTBOX ITEM'S KEY UserForm1.ListBox1.Selected(i) = True End Function