【问题标题】:Find cell based on Date in Excel VBA在 Excel VBA 中根据日期查找单元格
【发布时间】:2019-03-11 12:30:45
【问题描述】:

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

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

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

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

但两者都不起作用,因为我收到错误“未设置对象变量”)。我一直在谷歌搜索,找不到合适的解决方案来激活相关单元格。我的方法有什么问题?

【问题讨论】:

    标签: excel vba find


    【解决方案1】:

    这似乎有效:

    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() 创建范围将允许您在之前对其进行测试 你尝试Select 它并自己捕获任何错误。

    【讨论】: