请帮助!我需要在今天结束时(2013年4月11日)完成! 我一直试图以各种不同的方式弄清楚这个问题,我无法弄明白。需要帮助!
我有一系列用户表单,用户可以使用这些表单来选择从电子表格中读取数据的某些条件,最终生成最终列表框用户表单中的信息列表。在一个userform(ScoreRange)中,要求用户在两个单独的列表框中键入两个数字(tbScore1和tbScore2),然后一旦输入两个分数并单击标有“OK”的命令按钮,下一个用户窗体将打开一个组合框(cbName),我希望它用A列中的名字填充,其中E列中的对应分数落在用户选择的分数范围内。我希望它通过2-401行进行循环搜索。目前,组合框在打开时是空白的;它没有正确填充。这是我当前的代码。我应该提一下,ScoreRange用户表格仍处于打开状态(尚未卸载)。
Private Sub UserForm_Activate()
Dim i as Long
For i = 2 To 401
If Range("E" & i).Value >= ScoreRange.tbScore1.Value And Range("E" & i).Value <= ScoreRange.tbScore2.Value Then
Me.cbName.AddItem Range("A" & i).Value
End if
Next i
End Sub
答案 0 :(得分:1)
没关系,大家。我最终认为,唯一有效的方法是使用自动过滤器。这是我使用的最终代码,对于那些感兴趣的人。
Private Sub UserForm_Activate()
Dim wksheet1 As Worksheet
Set wksheet1 = Sheets("Sheet1")
Dim LR As Long
LR = Range("A" & Rows.Count).End(xlUp).Row
Dim cbRange As Range
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=5, Criteria1:= _
">=" & tbScore1.Value, Operator:=xlAnd, Criteria2:="<=" & tbScore2.ValueActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=5, Criteria1:= _
">=" & tbScore1.Value, Operator:=xlAnd, Criteria2:="<=" & tbScore2.Value
For Each cbRange In Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
Me.cbName.AddItem cbRange.Value
Next cbRange
ActiveSheet.AutoFilterMode = False
ActiveSheet.ShowAllData
End Sub