感谢是否有人可以帮助我。我一直在寻找任何相关问题,但无济于事。
我不确定这是否可以通过VBA完成(如果是,更好),虽然我目前正在研究公式(Match,VLookup)并且仍然很难。
我有三组列。(列A,B,C)
DATE INVOICE PAYMENT*
1/10/2015 131.08
1/10/2015 1220
2/10/2015 1232.4*
3/10/2015 1220*
目标是删除包含在B列(发票)和C列(付款)上找到的相同值的行,但前提是A列(日期)中的数据是在找到匹配日期后的3天内在两列中。应删除这些条件中的两行。 2015年10月1日+ 3天= 04/10/2015可以考虑,否则不应删除行。
期望的结果将是。
DATE INVOICE PAYMENT*
1/10/2015 131.08
2/10/2015 1232.4*
提前谢谢你。
答案 0 :(得分:1)
假设您只有2行必须删除,则创建宏。试一试,
Sub delrow()
Dim i As Long, j As Long
Columns("A:C").Sort key1:=Range("A2"), _
order1:=xlAscending, Header:=xlYes
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) = Cells(j, 3) And Cells(i, 1) < Cells(j, 1) And Cells(i, 1) + 3 >= Cells(j, 1) Then
Rows(i).ClearContents
Rows(j).ClearContents
End If
Next j
Next i
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1) = "" Then
Rows(i).Delete
End If
Next i
End Sub