2017-04-11 79 views
1

这是我的数据:筛选出相同数据使用VBA

PART_NUM  REV 
C210-272-002 B. 
C210-272-003 A. 
C210-272-004 A. 
C210-272-004 B. 
C210-272-005 F. 
C222-521-003 B. 
C222-521-004 A. 
C233-111-010 A. 
C233-111-010 B. 
C233-221-001 A. 

所以,你看到有一些细胞中,在PART_NUM但在转,他们可能是A或B转一样..所以我想用最新版本过滤掉相同的数字。它应该为列中的所有数据执行此操作。 EG:

C210-272-004 B. 
C210-272-004 A. 

我想删除/攻击/色彩搭配作为其一个旧条目的行... 我试图找到一种方法,只是想不出一个,因为我想请仅使用VBA进行学习..

+0

这是你怎么想的事。你认为你想“过滤掉”A,这不够实用,也可能不够通用。这项工作是指定一个零件号码。怎么样?哪里?这是通用部分。该系统必须适用于所有零件号码。 – Variatus

+0

接下来,您需要查找该零件编号的最新REV。因此,您可以遍历所有零件编号,如果有匹配,则可以将REV记录到变量中,您可以调用'Rev'并继续搜索。如果找到的下一个REV更新,则用'Rev'替换REV中的REV并继续搜索。重复更换直到结束。当到达结束时'Rev'保存最新版本。您可能记录了与REV平行的行号。并在您找到新版本时删除旧版本。 – Variatus

+0

诀窍是缩短循环。您可以通过首先应用过滤器来实现。或者,如果您知道最新版本将位于列表的底部,则从最后开始循环。请记住,如果您打算在循环中删除行,则无论如何您都必须从头开始。 – Variatus

回答

2

使用此公式创建条件格式规则。

=CODE($B2)<AGGREGATE(14,6, CODE($B$2:$B$11)/($A$2:$A$11=$A2), 1) 

enter image description here

+0

你如何做你的奇妙的动画插图? – Variatus

+0

哇,感谢这看起来更容易,嗯,但有反正我可以用VBA做到这一点?有没有可能为此使用宏记录器?因为我想了解更多关于VBA的知识......但还是谢谢!这有助于 – Zeusper

+0

@variatus它喜欢他是一个魔术师HAHA :) – Zeusper