我在允许多选的表单中有一些列表框。我需要将选择的选项与变量相关联。 我试过这个:
For i = 0 To (ListBox7.Items.Count - 1)
If ListBox7.Selected(i) = True Then
If maq1 = "" Then
maq1 = ListBox7.GetItemText(i)
Else
maq2 = ListBox7.GetItemText(i)
End If
End If
Next
和此:
For i = 0 To (ListBox7.Items.Count - 1)
If ListBox7.SelectedItem(i) Then
If maq1 = "" Then
maq1 = ListBox7.GetItemText(i)
Else
maq2 = ListBox7.GetItemText(i)
End If
End If
Next
但没有任何效果。在第一种情况下,我收到错误"选中的不是列表框的成员"在第二个中我得到了"类型' Char'到布尔'无效"。 有人能帮助我吗?谢谢:))
答案 0 :(得分:0)
对我而言,此代码有效,但请注意,按照您的逻辑,maq1
会保留第一个选定值,maq2
然后最后(如果选择了多一个值)。我不知道这是不是你真正想要的......
Dim i As Integer, maq1 As String, maq2 As String
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) Then
If maq1 = "" Then
maq1 = Me.ListBox1.List(i)
Else
maq2 = Me.ListBox1.List(i)
End If
End If
Next i
Selected
是一个布尔数组,用于表示是否选择了某个项目。 List
保留项目本身。因此,如果Selected(i)
为true
,则会选择List(i)
。
答案 1 :(得分:0)
@CindyMeister 为了创建列表框,我刚从工具箱中选择了列表框并创建了它 Form这是我的表格。这是填充de listboxes的代码:
While folhaexcel.Cells(contador, 1).text <> ""
maquina = folhaexcel.Cells(contador, 1).text
grupo = folhaexcel.Cells(contador, 4).text
status = folhaexcel.Cells(contador, 2).text
If status = "OFF" And grupo = "Climatic Chambers" Then
ListBox1.Items.Add(maquina)
ElseIf status = "OFF" And grupo = "Thermal Shock Chamber" Then
ListBox2.Items.Add(maquina)
ElseIf status = "OFF" And grupo = "Temperature Chamber" Then
ListBox3.Items.Add(maquina)
ElseIf status = "OFF" And grupo = "Acoustic Machine" Then
If maquina = "m32" Then
ListBox5.Items.Add("m32 + m35")
ElseIf maquina = "m35" Then
Else
ListBox5.Items.Add(maquina)
End If
ElseIf status = "OFF" And grupo = "Fall Machine" Then
ListBox6.Items.Add(maquina)
ElseIf status = "OFF" And grupo = "Electric Equipment" Then
ListBox7.Items.Add(maquina)
ElseIf status = "OFF" And grupo = "Vibration + Temperature" Then
If maquina = "m1" Then
ListBox4.Items.Add("m1 + m2")
ElseIf maquina = "m2" Then
ElseIf maquina = "m3" Then
ListBox4.Items.Add("m3 + m89")
ElseIf maquina = "m89" Then
ElseIf maquina = "m27" Then
ListBox4.Items.Add("m27 + m28")
ElseIf maquina = "m28" Then
ElseIf maquina = "m90" Then
ListBox4.Items.Add("m90 + m93")
ElseIf maquina = "m93" Then
Else
ListBox4.Items.Add(maquina)
End If
End If
contador = contador + 1
End While
这很好用。但现在我必须将我在每个列表框中选择的机器与变量相关联,但我不能。