VBA匹配具有重复值的列

VBA匹配具有重复值的列,vba,excel,Vba,Excel,我有一个excel范围,用作数据库。第一列按日期升序排序,但可以有多条记录具有相同的日期,例如 A B 1 15-Apr-2015 Carrot 2 15-Apr-2015 Yamagobo 3 16-Apr-2015 Turnip 4 17-Apr-2015 Parsnip 5 17-Apr-2015 Rutabaga 6 17-Apr-2015 Radish 7 18-Apr-2015 Daikon (A列中的内容是格式化日期,而

我有一个excel范围,用作数据库。第一列按日期升序排序,但可以有多条记录具有相同的日期,例如

       A          B
1 15-Apr-2015   Carrot
2 15-Apr-2015   Yamagobo
3 16-Apr-2015   Turnip
4 17-Apr-2015   Parsnip
5 17-Apr-2015   Rutabaga
6 17-Apr-2015   Radish
7 18-Apr-2015   Daikon
(A列中的内容是格式化日期,而不是文本字符串。)

我想得到的是第一条日期大于或等于我要搜索的日期的记录,因此我有:

Dim searchDate As Date
searchDate = CDate("4/17/15")
Dim searchRange As Range
Set dbRange = Worksheets("My DB").UsedRange
Dim v As Variant
v = Application.Match(CLng(searchDate), dbRange.columns(1), 1)
我希望v现在包含第一行的索引,2015年4月17日在A列,4中。相反,它似乎在2015年4月17日返回最后一行,6

两个问题:

1) 有没有一种方法可以使用Match()(或任何其他函数)指向匹配的第一个条目,而不是最后一个条目

2) 如果我给Match()一个日期类型作为其匹配参数(因此进行了CLng()转换),Match()会崩溃。这是意料之中的事,还是我在做傻事

谢谢。

尝试使用而不是匹配

要获取单元格,请执行以下操作:

set MyRange = dbRange.Columns(1).Find(searchDate)
要仅获取行,请执行以下操作:

MyRow= dbRange.Columns(1).Find(searchDate).row

但是,查找不能进行>=匹配,可以吗?