在Excel VBA中根据日期查找单元格

时间:2019-03-11 12:30:45

标签: excel vba find

我有一个包含几列的文件,其中一列包含日期,另一列包含一些整数。

我想根据单元格的日期获取单元格的行号。因此,在B列中,我希望包含日期为2018年12月31日的单元格的行号。工作簿中的显示格式为“ 31-Dec-2018”,单击该单元格时显示的格式为12/31/2018。我尝试使用

ActiveSheet.Range("B3:B500").Find(What:=CDate("Dec. 31, 2018")).Activate

ActiveSheet.Range("B3:B500").Find(What:=12/31/2016).Activate

但是当我收到错误“未设置对象变量”时,两者均无效。我已经搜索了很多东西,却找不到合适的解决方案来激活相关单元格。我的方法有什么问题?

1 个答案:

答案 0 :(得分:2)

这似乎起作用:

Sub dural2()
    Dim lDate As Date, r As Range
    lDate = DateSerial(2018, 12, 31)
    Set r = ActiveSheet.Range("B3:B500").Find(What:=lDate)
    r.Select
End Sub

enter image description here

只需验证 B 列中的数据是真实的Excel日期,而不是类似于日期的文本值。
使用FIND()创建范围将允许您对其进行测试< strong>之前,您会尝试Select并自己捕获任何错误。