Excel Vba过滤器范围按每个唯一值和复制数据

时间:2018-05-26 00:33:53

标签: excel vba excel-vba

美好的一天!

我正在创建一个宏,之前从未使用过滤器和排序。我试着寻找类似但却找不到的东西 - 我找到的解决方案很简单,升序或降序;或者我是以错误的方式表达它。 希望你能帮帮我。

我的数据如下:

VENDOR#  ITEM#

VENDOR1 310001

VENDOR1 310002

VENDOR2 310013

VENDOR2 310006

VENDOR2 310012

属于同一供应商的商品数量可能不同,供应商数量也是动态的。

这些是我希望宏做的粗略步骤:

  1. 宏应逐个过滤每个供应商(供应商数量是动态的),选择属于它的所有值并进行复制。 (我需要这一步的帮助
  2. 作为上述数据的示例,它将选择Vendor1作为来自列a&的第一个过滤器副本信息。 b为row1和row2。

    1. 从那里,我将向该供应商发送一封电子邮件,其中包含复制的数据。 (此步骤无需帮助

    2. 继续执行步骤1,直到过滤器中的最后一个值。 (我需要这一步的帮助

    3. 感谢所有对此有所了解的人!

1 个答案:

答案 0 :(得分:0)

在单独的位置创建所有供应商的列表并删除重复项。 然后使用此列表作为数组来筛选各个供应商。然后,您可以将每个供应商的数据放在单独的工作表中。这是代码,假设您在上面提供的数据放在单元格G1:H6中。

/// <reference path="<declaration-file-path>/<declaration-file-name>.d.ts" />

代码的前半部分复制供应商列表并将其粘贴到K1中。然后删除重复项,确定剩余列表中的供应商数量,然后返回G1并启用过滤。

代码的后半部分使用for循环逐个过滤每个供应商的表,复制可见单元格,在所有工作表的末尾插入工作表,切换到该工作表,粘贴复制的数据,然后回到原始表格。

无论每个供应商的行数供应商数量如何,此代码都应该有效。