美好的一天,我有一个userform列表框,我使用下面的代码来填充,该程序假设搜索包含特定搜索条件数据的每一行。
该程序的目的是将数据从用户表单添加到工作表,工作表将存储名称,日期,金额,用户名称和添加条目的日期将存储在列“H”中。
当我运行代码时,列表框仅填充连续序列中的项目,例如。
我的表格看起来像这样
名称|总金额|日期| UsernameDate |
Name1 | 254.36 | 2015年7月28日|名1 / 28JUL2015
Name1 | 101.25 | 28Jul2015 |名1 / 28JUL2015
Name2 | 99.58 | 2015年7月28日|名称2 / 28JUL2015
Name1 | 698.36 | 2015年7月28日| NAME1 / 28JUL2015
如果我想用Name2填充列表框,它会出现空白,如果我想用name1填充列表框,它只会填充前两行,但不会填充最后一行,也就是name1项。
Workbooks(ThisWorkbook.Name).Worksheets("Sheet1").Visible = True
Workbooks(ThisWorkbook.Name).Worksheets("Sheet1").Select
NumberofRows = Range("A2:J500", Range("A2").End(xlDown)).Rows.Count
Range("A2").Activate
If IsEmpty(ActiveCell) Then
Workbooks(ThisWorkbook.Name).Worksheets("Sheet1").Visible =xlSheetVeryHidden
Application.ScreenUpdating = True
Exit Sub
End If
On Error Resume Next
strAgentReport = Me.cboUser & "/" & UCase(Format(Me.txtDate, "dd-mmm-yy"))
Set rRange = Workbooks(ThisWorkbook.Name).Worksheets("Sheet1").UsedRange
Set rCell = rRange.Cells(1, 8)
lOccur = WorksheetFunction.CountIf(rRange.Columns(8), strAgentReport)
If lOccur > 0 Then
Set rCell = rRange.Columns(8).Find(What:=strAgentReport, After:=rCell, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
rCell(2, -8).Activate
For x = 1 To NumberofRows
i = x - 1
If ActiveCell(1, 8) = strAgentReport Then
listbox1.AddItem (ActiveCell)
listbox1.List(i, 1) = ActiveCell(1, 4)
listbox1.List(i, 2) = ActiveCell(1, 5)
listbox1.List(i, 3) = ActiveCell(1, 9)
listbox1.List(i, 4) = ActiveCell(1, 6)
listbox1.List(i, 5) = ActiveCell(1, 7)
listbox1.List(i, 6) = ActiveCell(1, 10)
listbox1.List(i, 7) = ActiveCell(1, 2)
listbox1.List(i, 8) = ActiveCell(1, 3)
ActiveCell.Offset(1, 0).Activate
If IsEmpty(ActiveCell) Then Exit For
End If
Next
End If
任何帮助将不胜感激