请问如何把工作表中符合条件的记录填写到VBA listbox中?
Private Sub CommandButton1_Click()
' Purpose: fill listbox with range values after clicking on CommandButton1
' (code could be applied to UserForm_Initialize(), too)
' Note: based on @Siddharth-Rout 's proposal at https://stackoverflow.com/questions/10763310/how-to-populate-data-from-a-range-multiple-rows-and-columns-to-listbox-with-vb
' but creating a variant data field array directly from range in a one liner
' (instead of filling a redimensioned array with range values in a loop)
Dim ws As Worksheet
Dim rng As Range
Dim MyArray ' variant, receives one based 2-dim data field array
'~~> Change your sheetname here
Set ws = Sheets("Sheet1")
'~~> Set you relevant range here
Set rng = ws.Range("A1:C" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row)
With Me.ListBox1
.Clear
.ColumnHeads = False
.ColumnCount = rng.Columns.Count
'~~> create a one based 2-dim datafield array
MyArray = rng
'~~> fill listbox with array values
.List = MyArray
'~~> Set the widths of the column here. Ex: For 5 Columns
'~~> Change as Applicable
.ColumnWidths = "50;50;50"
.TopIndex = 0
End With
End Sub
```bash
```
下面是一个示例代码,假设已经在 Excel 中创建了一个名为 "listbox1" 的 listbox 和一个名为 "Sheet1" 的工作表,并且希望把 Sheet1 中 A 列为 "apple" 的记录填写到 listbox1 中。
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To Range("A1").CurrentRegion.Rows.Count
If Range("A" & i).Value = "apple" Then
listbox1.AddItem Range("B" & i).Value
End If
Next
End Sub
在这个代码中,使用了 For 循环来遍历 Sheet1 中的所有记录,并检查 A 列的值是否为 "apple"。如果是,就使用 listbox1 的 AddItem 方法将 B 列的值添加到 listbox1 中。
仅供参考,望采纳,谢谢。
可以使用下列 VBA 代码来实现将工作表中符合条件的记录填写到 VBA listbox 中:
首先,打开 VBA 编辑器,在你的工作簿中新建一个模块。
然后,输入下面的代码,其中 "ListBox1" 是你的 ListBox 的名称,"Sheet1" 是你的工作表的名称,"A1:A10" 是你要在 ListBox 中显示的数据的区域,"B1:B10" 是你的条件所在的区域,"Criteria" 是你的条件:
For i = 1 To 10
If Range("B" & i).Value = "Criteria" Then
ListBox1.AddItem Range("A" & i).Value
End If
Next i
最后,按下 Alt + Q 键退出 VBA 编辑器,打开你的工作簿,你应该能看到 ListBox 中已经填充了符合条件的记录。
请注意,这个代码仅供参考,你可以根据你的需要来调整代码的细节。
Dim i As Long
For i = 1 To Range("A1").CurrentRegion.Rows.Count
If Range("A" & i).Value = "apple" Then
Sheet1.ListBox1.AddItem Range("B" & i).Value
End If
Next
你可以使用 VBA 中的 ListBox.AddItem 方法来向 listbox 中添加记录。例如,下面是一个示例代码,它会在工作表中查找符合条件的记录,然后将它们添加到 listbox 中:
' 假设工作表名为 "Sheet1",listbox 名为 "ListBox1"
' 定义变量
Dim rng As Range
Dim cell As Range
' 清空 listbox
ListBox1.Clear
' 设置查找条件
Set rng = Sheet1.Range("A1:A10").Find("查找条件", LookIn:=xlValues)
' 如果找到了符合条件的记录
If Not rng Is Nothing Then
' 将符合条件的记录添加到 listbox 中
ListBox1.AddItem rng.Value
' 查找其他符合条件的记录
Set rng = Sheet1.Range("A1:A10").FindNext(rng)
While Not rng Is Nothing
ListBox1.AddItem rng.Value
Set rng = Sheet1.Range("A1:A10").FindNext(rng)
Wend
End If
如果你想添加工作表中所有符合条件的记录,你可以使用以下代码:
' 假设工作表名为 "Sheet1",listbox 名为 "ListBox1"
' 定义变量
Dim rng As Range
' 清空 listbox
ListBox1.Clear
' 设置查找条件
Set rng = Sheet1.Range("A1:A10").Find("查找条件", LookIn:=xlValues)
' 如果找到了符合条件的记录
If Not rng Is Nothing Then
' 将符合条件的记录添加到 listbox 中
ListBox1.AddItem rng.Value
' 查找其他符合条件的记录
Do Until rng Is Nothing
Set rng = Sheet1.Range("A1:A10").FindNext(rng)
If Not rng Is Nothing Then
ListBox1.AddItem rng.Value
End If
Loop
在这段代码中,我们使用 Range.Find 和 Range.FindNext 方法来在工作表中查找符合条件的记录,然后使用 ListBox.AddItem 方法将它们添加到 listbox 中。注意,我们使用了一个 Do Until 循环来查找所有符合条件的记录,当找不到更多的记录时,循环会停止。
希望这些信息能帮到你。
如果你想把工作表中符合条件的记录填写到 VBA listbox 中,你可以使用以下代码:
Sub FillListBox()
Dim r As Range
Dim i As Long
Set r = Range("A1:A10") '设置要搜索的区域
For i = 1 To r.Rows.Count '遍历区域中的每一行
If r(i, 1) = "Apple" Then '如果找到了符合条件的记录
Me.ListBox1.AddItem r(i, 1) '将记录填写到 listbox 中
End If
Next i
End Sub
在上面的代码中,我们首先设置了要搜索的区域为 A1:A10,然后使用 For 循环遍历区域中的每一行,如果找到了符合条件的记录(即第一列的值为 "Apple"),就将记录填写到 listbox 中。
想把工作表中符合条件的记录填写到 VBA ListBox 中,可以使用以下步骤:
1.使用 VBA 循环遍历工作表中的每一行。
2.在循环中,使用 If 语句判断当前行是否符合条件。
3.如果当前行符合条件,则使用 ListBox.AddItem 方法将该行的数据添加到 ListBox 中。
Sub FillListBox()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim i As Long
For i = 1 To ws.UsedRange.Rows.Count
If ws.Cells(i, 1).Value = "Yes" Then
Me.ListBox1.AddItem ws.Cells(i, 2).Value
End If
Next
End Sub