【发布时间】:2017-04-11 02:14:48
【问题描述】:
这是我的数据:
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 中有一些相同的单元格,但在 rev 中它们可能是 A 或 B rev.. 所以我想用最新的 rev 过滤掉相同的数字。它应该对列中的所有数据执行此操作。例如:
C210-272-004 B.
C210-272-004 A.
我想删除/删除/着色以 A 作为旧条目的行... 我试图找到一种方法,只是想不出一个方法,因为我只想用 VBA 来做这件事。
【问题讨论】:
-
看你怎么想。你认为你想“过滤掉”A,这不够实用,也可能不够通用。工作是指定零件号。如何?在哪里?那是通用的部分。该系统必须适用于所有零件号。
-
接下来您要查找该部件号的最新版本。因此,您遍历所有零件编号,如果匹配,您将 REV 记录在一个变量中,您可以调用
Rev并继续搜索。如果您找到的下一个 REV 较新,则将Rev中的 REV 替换为新版本并继续搜索。重复更换直到结束。当到达终点时Rev持有最新版本。您可能已经记录了与 REV 平行的行号。并在您发现新版本时删除旧版本。 -
诀窍是缩短循环。您可以通过先应用过滤器来做到这一点。或者,如果您知道最新版本将位于列表的底部,请从末尾开始循环。请记住,如果您打算在循环期间删除行,则无论如何都必须从头开始。
标签: vba excel filter conditional-formatting