将值显示为范围的组合框

时间:2020-07-27 01:40:56

标签: excel vba

我有一个包含26000个条目的摘要工作表(sh)。我有一个用户窗体,带有一个组合框,允许用户搜索数据库,并且只要组合框中的值与第6列中的值匹配;将整个行复制到新的工作表(shR)。第6列中的条目/值的范围在0.007到1之间。我想设计代码,使组合框将这些值显示为范围,然后代码可以在第6列中搜索该范围内的所有此类条目。范围;

  1. 0.007-0.1
  2. 0.11-0.25
  3. 0.251-0.5
  4. 0.51-0.75
  5. 0.751-1

这是我当前的代码:

For i=5 to totRows

    if (Trim(sh.Cells(i, 6)) <= Trim(cbDn.Value) Or cbDn.Value = "") then
        totR = shR.Cells(Rows.count, 1).End(xlUp).Row
        sh.Rows(i).EntireRow.Copy Destination:=shR.Cells(totR + 1, 1)
    End If

Next i

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以的:

Dim arr, mn, max, v, c

If Len(cbDn.Value) > 0 Then  '<<< check user made a selection

    arr = split(cbDn.Value, "-")
    mn = CDbl(Trim(arr(0))
    mx = CDbl(Trim(arr(1))
    
    For i=5 to totRows
        v = sh.Cells(i, 6).Value
        if v > mn And v <= mx then 
            Set c = shR.Cells(Rows.count, 1).End(xlUp).Offset(1, 0)
            sh.Rows(i).EntireRow.Copy Destination:=c
        End If