我已经编写了以下代码,以便在我的列表框中存在某个文字并且"确定"点击按钮完成某件事。
Private Sub CommandButton3_Click()
If (Me.ListBox2.Text) <> ("PA") Then
Call macro1
ElseIf (Me.ListBox2.Text) <> "menu" Then
Sheets("menu").Visible = xlSheetVisible
Worksheets("menu").Activate
Else
MsgBox "Nothing is selected"
End If
End Sub
问题是当&#34; ok&#34;单击所有事件仍然执行,即使指定的文本不在文本框中。
答案 0 :(得分:1)
您可能希望使用=
运算符,而不是<>
运算符。另请注意,ListBox.List(i)
是获取单一选择模式所选项目的正确方法:
Private Sub CommandButton3_Click()
Dim SelectedItem = ListBox1.List(ListBox1.ListIndex)
If SelectedItem = "PA" Then
Call macro1
ElseIf SelectedItem = "menu" Then
Sheets("menu").Visible = xlSheetVisible
Worksheets("menu").Activate
Else
MsgBox "Nothing is selected"
End If
End Sub
根据您的评论,您可以创建一个查找该项目存在的函数:
Private Function TextExists(text as String) as Boolean
Dim i as Long
For i = 0 To ListBox1.ListCount - 1
If ListBox1.List(i) = text Then
TextExists = True
Exit Function
End If
Next
TextExists = False
End Function
然后在主代码中使用此函数,如下所示:
Private Sub CommandButton3_Click()
If TextExists("PA") Then
Call macro1
ElseIf TextExists("menu") Then
Sheets("menu").Visible = xlSheetVisible
Worksheets("menu").Activate
Else
MsgBox "Nothing is selected"
End If
End Sub
N.B。我在这里手动编写了这个,没有IDE。请检查索引和其他小事。