0

请帮忙!我需要在今天(2013 年 11 月 4 日)结束前完成这个!!!我整天都在尝试以多种不同的方式解决这个问题,但我无法弄清楚。需要帮助!

我有一系列用户表单,用户使用这些用户表单来选择某些标准,这些标准从电子表格中读取数据,最终在最终的列表框用户表单中生成信息列表。在一个用户表单(ScoreRange)中,要求用户在两个单独的列表框(tbScore1 和 tbScore2)中输入两个数字,然后一旦他们输入两个分数并单击标有“确定”的命令按钮,下一个用户表单就会打开组合框(cbName),我想让它填充来自列 A 的名称,这些名称在列 E 中的相应分数落在用户选择的分数范围内。我希望它通过第 2-401 行进行循环搜索。目前,组合框打开时为空白;它没有正确填充。这是我拥有的当前代码。

   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
4

1 回答 1

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
于 2013-11-04T17:11:14.320 回答