Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel VBA中基于日期查找单元格_Excel_Vba_Find - Fatal编程技术网

在Excel VBA中基于日期查找单元格

在Excel VBA中基于日期查找单元格,excel,vba,find,Excel,Vba,Find,我有一个包含几列的文件,其中一列包含日期,另一列包含一些整数 我想根据单元格的日期获取其行号。所以在B列中,我想要包含2018年12月31日日期的单元格行号。工作簿中的显示格式为“2018年12月31日”,单击单元格时显示2018年12月31日。我试着用 ActiveSheet.Range("B3:B500").Find(What:=CDate("Dec. 31, 2018")).Activate 及 但两者都不起作用,因为我得到一个错误“对象变量未设置”)。我在谷歌上搜索了很多次,没有找到一

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

我想根据单元格的日期获取其行号。所以在B列中,我想要包含2018年12月31日日期的单元格行号。工作簿中的显示格式为“2018年12月31日”,单击单元格时显示2018年12月31日。我试着用

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

但两者都不起作用,因为我得到一个错误“对象变量未设置”)。我在谷歌上搜索了很多次,没有找到一个合适的解决方案来激活相关的细胞。我的方法有什么问题

这似乎有效:

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

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

这似乎有效:

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

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