在vba中使用listbox查找和显示数据

我已经试过这段代码,使用VBA中的列表框从excel中查找特定数据,它填充了sheet3范围(E7)中的一个名称列表,然后每次单击一个项目/名称时程序应该从sheet3中find名称并显示该行上的数据放入我的用户表单中相应的文本框中。但是这不起作用。谢谢。

Private Sub ListBox1_Click() Dim isRow As Long If Me.ListBox1.ListIndex > -1 Then isRow = Me.ListBox1.ListIndex + 1 End If Me.Label1 = Cells(sRow, 5) Me.txt_Mon_in.Text = Cells(sRow,6) End Sub 

从Sheet3填充数据。

 Private Sub Userform_Initialize() Dim vCol As Variant Dim Lrow As Long Lrow = Sheets("Sheet3").UsedRange.Rows(Sheets("Sheet3").UsedRange.Rows.Count).Row vCol = Sheets("Sheet3").Range("E7:E" & Lrow).Value Me.ListBox1.List = vCol End Sub 

林不太清楚你在做什么,但尝试下面的代码

 Private Sub Userform_Initialize() Dim vCol As Variant Dim Lrow As Long Lrow = Sheets("Sheet3").UsedRange.Rows(Sheets("Sheet3").UsedRange.Rows.Count).Row vCol = Sheets("Sheet3").Range("E7:E" & Lrow).Value Me.ListBox1.List = vCol End Sub Private Sub ListBox1_Click() Dim selectedName As String Dim i As Long With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) Then selectedName = .List(i) End If Next i End With Dim c As Range For Each c In Sheets(3).Range("E7:E" & Sheets(3).Range("E" & Rows.Count).End(xlUp).Row) If c = selectedName Then Label1 = Sheets("Sheet3").Cells(c.Row, 5) txt_Mon_in.Text = Sheets("Sheet3").Cells(c.Row, 6) End If Next c End Sub 

Listbox1_Click()子将遍历表3中的列E,并将名称放在Label1控件中,并将find的单元格的(0,1)的偏移量放入txt_Mon_in

表Sheet 3

在这里输入图像说明

用户窗体

在这里输入图像说明

结果

在这里输入图像说明