假设我有一张电子表格,其中包含客户出货清单和出货编号。例如,DairyQueen 024918
。每个货件号码是六位数。这个货物清单全天都会增加。在一天结束时,我们希望查看每家公司的最新货件。
基本上,我想删除具有重复客户端名称但没有重复客户端发货的行,并且只保留最新的,所以列表底部的那一行。由于从另一个系统检索数据的特定设置,无法将客户端和货件编号放在单独的列中。
以下是一个例子:
Costco 002456
DairyQueen 001239
Costco 001335
DairyQueen 008448
Menards 001444
Menards 002448
我想留下这个清单:
Costco 001335
DairyQueen 008448
Menards 002448
到目前为止,我尝试过的代码如下:
Sub DeleteOldClients()
Dim LastRow As Integer
LastRow = Range("A1").Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 1 To LastRow
For j = 1 To LastRow
If (Left(Range("A" & i).Value, Len(Range("A" & i).Value) - 7) = Left(Range("A" & j).Value, Len(Range("A" & j).Value) - 7)) Then
Range("A" & i).EntireRow.Delete
LastRow = LastRow - 1
End If
Next j
Next i
End Sub
不幸的是,它失败了。任何人都可以帮忙吗?
答案 0 :(得分:0)
您的循环计数器(i
和j
)未正确设置,j
应始终从i + 1
开始,而i
必须以{{结尾1}}。您还应该使用LastRow - 1
删除该行。我还使条件语句更简单一些。如果我的回复适合您,请将问题标记为已回答。
j