【问题标题】:Find if date is present in Range of cells (Excel VBA)查找日期是否存在于单元格范围中(Excel VBA)
【发布时间】:2015-05-28 14:01:28
【问题描述】:

我有一个单元格F2,其中包含一个日期,格式为自定义日期字段,仅显示日期和月份。

然后我有一个单元格范围C3;C60,其中还包含日期,并被格式化为显示dd/mm/yyyy的欧洲日期字段

我正在编写一个对这些字段进行检查的 VBA,但它不起作用。 在下面的示例中,变量c 可以是F5F20 之间的任何单元格。

我收到RuntimeError 91.

If Worksheets(1).Range("C3", "C60").Find(Worksheets(1).Cells(2, c.Column).Value) = True Then
        c.Value = "Whatever"        
Else

【问题讨论】:

    标签: vba excel find


    【解决方案1】:

    .Find() 返回一个范围,您的 if 语句正在检查它是否为 TRUE。那将失败。

    Dim rng as Range
    
    Set rng = Worksheets(1).Range("C3:C60").Find(Worksheets(1).Cells(2, c.Column).Value)
    if not rng is Nothing then
      c.Value = "Whatever"        
    Else
    

    注意 Gary's 答案的包含

    【讨论】:

    • 很高兴有帮助。 .Find() 是一个很棒的工具,但它带有一些“陷阱”。阅读它,您会发现它非常有用,盲目地跳进去,您将不会享受自己......
    【解决方案2】:

    替补:

    Range("C3:C60")
    

    Range("C3", "C60")
    

    可能还有其他问题。

    【讨论】:

    • @sharkyenergy 查看FreeMan的帖子
    猜你喜欢
    • 2013-12-24
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    相关资源
    最近更新 更多