【发布时间】:2014-01-07 11:26:19
【问题描述】:
我尝试删除非重复数据并保留重复数据 我做了一些编码,但什么也没发生,哦。这是错误。哈哈
这是我的代码。
Sub mukjizat2()
Dim desc As String
Dim sapnbr As Variant
Dim shortDesc As String
X = 1
i = 2
desc = Worksheets("process").Cells(i, 3).Value
sapnbr = Worksheets("process").Cells(i, 1).Value
shortDesc = Worksheets("process").Cells(i, 2).Value
Do While Worksheets("process").Cells(i, 1).Value <> ""
If desc = Worksheets("process").Cells(i + 1, 3).Value <> Worksheets("process").Cells(i, 3) Or Worksheets("process").Cells(i + 1, 2) <> Worksheets("process").Cells(i, 2) Then
Delete.EntireRow
Else
Worksheets("output").celss(i + 1, 3).Value = desc
Worksheets("output").Cells(i + 1, 1).Value = sapnbr
Worksheets("output").Cells(i + 1, 2).Value = shortDesc
X = X + 1
End If
i = i + 1
Loop
End Sub
我做错了什么?
我的期望:
before :
sapnbr | ShortDesc | Desc
11 | black hat | black cowboy hat vintage
12 | sunglasses| black sunglasses
13 | Cowboy hat| black cowboy hat vintage
14 | helmet 46 | legendary helmet
15 | v mask | vandeta mask
16 | helmet 46 | valentino rossi' helmet replica
之后
sapnbr | ShortDesc | Desc
11 | black hat | black cowboy hat vintage
13 | Cowboy hat| black cowboy hat vintage
14 | helmet 46 | legendary helmet
16 | helmet 46 | valentino rossi' helmet replica
更新,使用@siddhart 编码,删除唯一值,但不是全部,
【问题讨论】:
-
什么是
Delete.EntireRow这是评论吗? -
代码逻辑的主要缺陷是如果数据没有排序就会失败。您能否展示一些示例数据以及删除后的样子?
-
我想删除非重复数据整行。好的。生病更新@siddharth Rout
-
突出显示的是重复项。你想保留重复的权利吗?
-
@siddhart。是的,并删除所有具有唯一值的行。你知道为什么还有唯一值的行吗?
标签: vba excel duplicates