【问题标题】:Filter out same Data using VBA使用 VBA 过滤掉相同的数据
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 你的精彩动画插图是如何制作的?
  • 哇,谢谢,这看起来更容易,嗯,但无论如何我可以使用 VBA 做到这一点吗?是否可以为此使用宏记录器?因为我想了解有关 VBA 的更多信息……但仍然感谢!这有帮助
  • @variatus 就像他是魔术师哈哈 :)
  • @Variatus - ScreenToGif
  • 诶诶!! :-) ,我将回到我的所有帖子并为其制作动画
猜你喜欢
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
相关资源
最近更新 更多