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 - 1
( ListBox
项目索引是基于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