【问题标题】:VBA comparing two datesVBA比较两个日期
【发布时间】:2013-10-09 19:35:55
【问题描述】:

我知道这听起来很简单,但我一直在尝试各种方法,但仍然没有成功。

  1. 我有一个包含许多变量的大数据集,其中两个很有用。第一个称为“符号”(aaa、bbb、ccc 等),第二个称为“日期”(例如 2012-05-15 20:00);一个符号对应多个日期;

  2. 我想删除一些特定日期的符号(例如,bbb,2012-05-15),我有删除符号列表;

  3. 我试图比较数据集中的日期和 for 循环中的删除日期,如果特定符号彼此相等,则删除整行,这就是问题所在;

  4. 代码如下:

    Dim d1 As Date
    d1 = DateSerial(2012, 5, 15) 'This is the deleting date  
    MsgBox (IsDate(d1)) 'This returns true   
    MsgBox (IsDate(DateValue(Cells(4, 9)))) 'This returns true
    
    For j = lastRow To 2 Step -1  
       If Cells(j,2).Value = "bbb" And (CDate(d1) = DateValue(Cells(j, 9))) Then Rows(j).EntireRow.Delete  
    Next
    
  5. VBA 给了我“类型不匹配”错误。我也试过 If d1 = DateValue(Cells(j,9)) Then Rows(j).EntireRow.Delete 但这也没有用。屏幕截图在单元格中有值,当它引发错误时。

【问题讨论】:

  • 您是否尝试过在您的 VBA 中放置代码中断?这将使您能够准确地看到代码认为每个值是什么。我的猜测是 DateValue(Cells(j,9) 不是有效日期,因此类型不匹配错误。
  • Cells(j,9) 中有什么内容?
  • @DavidZemens Cells(j,9),即 Column(9) 具有可变日期。我将删除日期与第 9 列进行比较,如果匹配,则删除整行。
  • 呃。单元格中的值是什么,当它引发错误时。请添加 screesnhot,或更新您的问题。我知道你认为这是过时的,但不知道里面到底有什么,无能为力。
  • @DavidZemens 我已经更新了这个问题。代码 MsgBox (IsDate(DateValue(Cells(4, 9)))) 返回 true,我认为这意味着 Column I 的内容是日期变量,除非我理解错误。

标签: vba datetime compare


【解决方案1】:

您似乎遇到了一个无法转换为 DateValue 的空单元格。

在即时窗口中,尝试:

?DateValue("") 你会得到同样的错误。

你只需要稍微扩展你的逻辑:

For j = lastRow To 2 Step -1  
   If Cells(j,2).Value = "bbb" And Not Cells(j,9) = vbNullString And IsDate(Cells(j,9) Then
      If (CDate(d1) = DateValue(Cells(j, 9))) Then Rows(j).EntireRow.Delete  
   End If
Next

【讨论】:

    【解决方案2】:

    我实际上尝试过这个并且它有效。我唯一改变的是我将实际日期放入日期列 I 列(其他评论者指出这可能是您的问题),并且我将 lastrow 设为一个数字。

    只需确保您在第一列中有日期,最后一行是数字,您不应该收到该错误

    【讨论】:

    • 代码 MsgBox (IsDate(DateValue(Cells(4, 9)))) 返回 true,我认为这意味着 I 列的内容是日期变量,除非我理解错误。
    • lastrow 是一个整数吗?我没看到你在哪里设置的。
    • 或者尝试让 lastrow = 4 (或者你用你的消息框检查的任何日期),然后把 debug.print j 放在你的循环中,这样你就可以查看调试器并找出它在哪里出错了.
    猜你喜欢
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多