Excel 触发日期差时VBA删除值

Excel 触发日期差时VBA删除值,excel,vba,Excel,Vba,问题是它会从出现差异的两行中删除值。 它应该仅从出现差异的顶行删除值 因此,我尝试用ws.Cells(FirstDate,1)=”替换ws.Cells(RowNo,3)=”,但它没有任何作用 任何帮助都将不胜感激。谢谢 代码如下: Sub CalculateDate() Dim Result, RowNo As Long Dim FirstDate, SecondDate As Date Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1)

问题是它会从出现差异的两行中删除值。 它应该仅从出现差异的顶行删除值

因此,我尝试用
ws.Cells(FirstDate,1)=”
替换
ws.Cells(RowNo,3)=”
,但它没有任何作用

任何帮助都将不胜感激。谢谢

代码如下:

Sub CalculateDate()
Dim Result, RowNo As Long
Dim FirstDate, SecondDate As Date
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets(1)

RowNo = 2

    Do Until ws.Cells(RowNo + 1, 2) = ""

    FirstDate = ws.Cells(RowNo, 2)
    SecondDate = ws.Cells(RowNo + 1, 2)

        If DateDiff("d", FirstDate, SecondDate) < 2 Then
        ws.Cells(RowNo, 3) = " "
        End If

    RowNo = RowNo + 1

    Loop

End Sub
子计算日期()
暗淡的结果,没有那么长
Dim FirstDate,SecondDate作为日期
将ws设置为工作表
设置ws=ThisWorkbook.Sheets(1)
RowNo=2
直到ws.Cells(行号+1,2)=“”
FirstDate=ws.Cells(第2行)
SecondDate=ws.Cells(行号+1,2)
如果DateDiff(“d”,FirstDate,SecondDate)<2,则
ws.Cells(第3行)=“
如果结束
RowNo=RowNo+1
环
端接头

关键:


红色=两个日期之间的差异可能需要更改

    If DateDiff("d", FirstDate, SecondDate) < 2 Then
        ws.Cells(RowNo, 3) = " "
    End If
如果DateDiff(“d”,FirstDate,SecondDate)<2则
ws.Cells(第3行)=“
如果结束

如果DateDiff(“d”,FirstDate,SecondDate)<2则
ws.Cells(RowNo,3).ClearContents
RowNo=RowNo+1
如果结束

在您的逻辑中,您正在比较B列中的日期,如果第一个日期和第二个日期之间的差异是
ws.Cells(RowNo,3)。ClearContents
?@Deepak是的。我正在比较B列上的连续日期(第一行,第一行+1),如果差异@HTH,感谢您的回复!这仍然可以做同样的事情,它不必从C列的两行中删除值,而只需要从发现差异的顶行中删除值。如果它确实删除了下面的行,则表示后面的行满足了在后续循环中删除的要求。您可能希望显示您的数据示例
    If DateDiff("d", FirstDate, SecondDate) < 2 Then
        ws.Cells(RowNo, 3).ClearContents
        RowNo = RowNo + 1
    End If