Excel自动过滤器,复制选择,粘贴到新工作表

时间:2017-03-06 06:45:27

标签: excel vba excel-vba

我在Regions!A6:R553列中有一个包含源数据的表。

Regions!A3:R3中,我有公式,可以将Regions!A6:R553中我希望复制到其他工作表的数据表中的特定信息提取出来。

列A用作我的项目名称列,而列B用作ID号。就我而言,每个项目都有多个ID号。

我正在寻找一个脚本来逐个过滤和循环遍历B列中的所有唯一订单号,然后将单元格A3:R3复制到RegionsSummary!A12:R12以获得与唯一订单号一样多的行(即向表中添加行)。

以下是我的数据表的屏幕截图,"地区": i.stack.imgur.com/aTPuw.png

这是一个空模板表的屏幕抓图" RegionsSummary": i.stack.imgur.com/9Ukz5.png

enter image description here

示例:假设我的数据表中有5个项目。我将使用另一个宏来过滤数据以选择Project_1。然后,我想要一个命令按钮来激活一个宏,该宏将过滤到B列中的第一个订单号,将Regions!A3:R3复制到RegionsSummary!A12:R12,然后过滤到Project_1中的第二个订单号,然后重复该过程。这应该继续,直到所有唯一的ID号都被过滤和循环。

以下是最终产品应如下所示的屏幕截图: i.stack.imgur.com/9Ukz5.png

enter image description here

以下是该文件的链接:Final Output Example

1 个答案:

答案 0 :(得分:0)

我会使用比具有某些约束的宏更简单的解决方案。我无法访问您的工作表,因此我将制作样本excel。

步骤进行:

  1. 为下拉列表创建一个唯一项目列表(COPY Regions!A5:A10000到新工作表> Data> Remove Duplicates)。使用“ Example_Result ”表-C7中的数据验证创建下拉列表(数据验证>列表>选择范围)。

  2. 在“区域”中,在Col S中,输入以下公式 的 = S6&安培; “_” &安培; COUNTIF($ S $ 6:S6,S6) 将此公式复制为整个工作表,或者只要您希望工作表增长

  3. 在“ Example_Result ”中,从A12开始插入索引列(如果您希望每个项目的订单编号为1000或更少,则在Col A中为1到1000)。

  4. 沿着第11行的列(B以上)包括来自区域(评估项目,公路等)的变量的名称。

  5. Example_Result 的B12至S1000中插入以下公式(取决于变量的数量):

  6. <强> = IFERROR(INDEX(区域$ A $ 5:$ S $ 10000,MATCH($ C $ 7和; “_” &安培; A $ 12地区$ S $ 5:!$ S $ 10000,0),MATCH (B $ 11区域$ A $ 5:!$ H $ 5,0)), “”)