VBA listbox 只显示符合条件的记录

请问 Excel vba listbox 中如何只显示符合条件的工作表记录?

可以使用下面的代码来在ListBox中只显示符合条件的工作表记录:

首先在你的工作簿中添加一个ListBox控件,并给它命名为"ListBox1"。

然后在VBA编辑器中,添加一个按钮控件,并将以下代码添加到按钮的单击事件处理程序中:

Dim i As Long

ListBox1.Clear '清空ListBox

For i = 1 To ThisWorkbook.Worksheets.Count '循环所有工作表
If ThisWorkbook.Worksheets(i).Name Like "Sheet*" Then '如果工作表名称以"Sheet"开头
ListBox1.AddItem ThisWorkbook.Worksheets(i).Name '将工作表名称添加到ListBox
End If
Next i

最后在Excel中单击按钮,即可在ListBox中只显示符合条件的工作表记录。
在这个代码中,我们使用了For循环来遍历所有工作表,并使用If语句来判断工作表的名称是否以"Sheet"开头。

如果符合条件,则使用ListBox的AddItem方法将工作表名称添加到ListBox中。你可以根据你的需要修改这个代码,以满足你的需求。

您可以使用 VBA (Visual Basic for Applications) 中的条件语句和循环语句来实现这一目的。

具体来说,您可以使用下列代码来在 listbox 中只显示符合条件的工作表记录:

首先,在 listbox 控件中添加一个变量,用来储存工作表的名称,例如:
Dim ws As Worksheet

然后,使用 For Each 循环语句来遍历所有的工作表,例如:
For Each ws In ThisWorkbook.Worksheets

接着,使用 If 语句来检查工作表是否符合指定的条件,例如:
If ws.Name Like "Sheet*" Then

最后,在条件成立的情况下,使用 listbox 的 AddItem 方法将工作表的名称添加到 listbox 中,例如:
ListBox1.AddItem ws.Name

完整的代码示例如下:

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name Like "Sheet*" Then
ListBox1.AddItem ws.Name
End If
Next

上述代码将遍历所有的工作表,只有名称以 "Sheet" 开头的工作表才会被添加到 listbox 中。您可以根据自己的需要调整条件的具体内容。

希望这些信息能够帮助您。如果您还有任何其他问题,欢迎随时追问。

题主你好,推荐你看下此篇https://jingyan.baidu.com/article/f96699bbdfc5bc894e3c1b94.html
希望对你有所帮助,如果有效,还请采纳呀。

我建议你在工作簿中添加一个 ListBox 控件。

在 VBA 窗口中添加一个按钮,并在按钮的点击事件中添加以下代码:

Dim i As Integer

For i = 1 To Sheets.Count
If Sheets(i).Name Like "指定的字符串" Then
ListBox1.AddItem Sheets(i).Name
End If
Next

如何你可以替换 "指定的字符串" 为你想要的条件,比如 "Sheet*" 表示名称以 "Sheet" 开头的工作表。

最后,点击按钮,ListBox 中就会显示符合条件的工作表记录。

通过调节ListBox属性调节ListBox多选或者单选ListSytle等改变内容的输出形式。

If CheckBox8 = True Then---------------------------checkbox控件被选中

For i = 0 To ListBox1.ListCount - 1--------------循环将值赋到ListBoxIf i < ListBox1.ListCount Then
    '        If ListBox1.Selected(i) Then
    '            ListBox1.RemoveItem (i) ---------------clear   selected row 删除选中内容
                Me.ListBox1.Selected(i) = True----------Me只有在同一个页面的时候才用  sheet5.ListBox1.Selected(i) = True 适用所有情况。
    '            i = i - 1
    '        End If
        End If
    Next


Else
    For i = 0 To ListBox1.ListCount - 1
        If i < ListBox1.ListCount Then
   
                Me.ListBox1.Selected(i) = False
   
        End If
    Next
   
End If

首先,在 listbox 控件中创建一个列表,并将所有工作表的名称添加到列表中。

然后可以使用 For Each 循环遍历工作表列表,并检查每个工作表是否符合条件。如果工作表符合条件,就将其名称添加到 listbox 中。

下面是一个示例代码,假设希望在 listbox 中只显示工作表名称以 "Sheet" 开头的工作表:

Dim ws As Worksheet

' 清空 listbox
Me.ListBox1.Clear

' 遍历所有工作表
For Each ws In ThisWorkbook.Worksheets
    ' 检查工作表名称是否以 "Sheet" 开头
    If Left(ws.Name, 5) = "Sheet" Then
        ' 将工作表名称添加到 listbox 中
        Me.ListBox1.AddItem ws.Name
    End If
Next

仅供参考,望采纳,谢谢。

您可以使用 ListBox 的 AddItem 方法来动态添加需要显示的工作表记录。

下面是一个示例代码,该代码将会在 ListBox 中添加名称中包含 "Sheet" 的工作表的名称:

Private Sub CommandButton1_Click()
    ' 遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        ' 如果工作表名称中包含 "Sheet",则添加到 ListBox 中
        If InStr(ws.Name, "Sheet") > 0 Then
            Me.ListBox1.AddItem ws.Name
        End If
    Next
End Sub


在上述代码中,使用了 ThisWorkbook 对象的 Worksheets 集合和 Worksheet 对象的 Name 属性来遍历所有工作表并获取工作表名称。使用了 InStr 函数来判断工作表名称中是否包含指定的字符串。

您可以根据需要修改上述代码来实现其他的条件判断

在 Excel VBA 中,您可以使用 ListBox.AddItem 方法向 ListBox 中添加项目,并使用ListBox.Clear方法清空 ListBox 中的所有项目。

下面是一个示例代码,该代码演示了如何在 ListBox 中只显示符合条件的工作表记录:

Private Sub Button1_Click()
  Dim i As Integer
  ListBox1.Clear
  For i = 1 To Worksheets.Count
    If Worksheets(i).Name Like "Sheet*" Then
      ListBox1.AddItem Worksheets(i).Name
    End If
  Next
End Sub

在这段代码中,我们使用 For 循环遍历所有的工作表,并检查工作表的名称是否符合特定条件(例如以 "Sheet" 开头)。如果符合条件,则使用 ListBox.AddItem 方法将工作表的名称添加到 ListBox 中。

希望这些信息对您有帮助!