如何从多个Excel表中提取部分相同的数据生成单一的一个Excel文件

如何从多个Excel表中提取部分相同的数据生成单一的一个Excel文件

实现的方法和详细的操作步骤如下:

1、第一步,
 sheet1的A列和sheet2的A列具有相同的数据。可以通过编写vba代码用相同的数据填充sheet3的A列,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,单击菜单栏中的[文件]选项,然后在下拉菜单中选择[另存为]选项,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,选择[保存类型]中的[Excel启用宏的工作簿]选项,然后单击[确定]按钮,如下图所示,然后进入下一步。

4、然后,完成上述步骤后,打开刚刚另存为的启用了宏的工作簿,右边会出现一个黄色的小“!”   ,如下图所示,然后进入下一步。

5、随后,完成上述步骤后,单击菜单栏的[开发工具]选项,然后在其工具栏中单击[Visual
 Basic]选项,如下图所示,然后进入下一步。

6、接着,完成上述步骤后,单击菜单栏中的[插入]选项,然后在下拉菜单中选择[模块]选项,如下图所示,然后进入下一步。

7、然后,完成上述步骤后,在模块窗口中输入如下代码,如下图所示,然后进入下一步。

8、随后,完成上述步骤后,单击[开发工具]选项中的[插入]选项以插入表单控件,如下图所示,然后进入下一步。

9、接着,完成上述步骤后,将表单控件命名为“筛选相同数据”,并将其与编写的Visual
 Basic代码相关联,如下图所示,然后进入下一步。

10、最后,完成上述步骤后,单击“筛选相同数据”按钮,将立即筛选工作表1的A列和工作表2的A列中的相同数据,并将其输入到工作表3的A列中,如下图所示。这样,问题就解决了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-26

具体操作步骤如下:

1、首先,
 sheet1的A列和sheet2的A列具有相同的数据。可以通过编写vba代码用相同的数据填充sheet3的A列,如下图所示,然后进入下一步。

     

2、其次,单击菜单栏左上角的[文件]-[另存为],如下图所示,然后进入下一步。

     

3、接着,在弹出窗口中,将[保存类型]选择为[Excel宏工作簿],再单击[确定],如下图所示,然后进入下一步。

     

4、然后,打开刚刚另存为的启用了宏的工作簿,右侧将出现一个黄色感叹号 ,如下图所示,然后进入下一步。

     

5、随后,在工作表中,单击菜单栏[开发工具],再单击下方的[Visual
 Basic],如下图所示,然后进入下一步。

     

6、接着,将进入VBA编辑界面,单击菜单栏中的[插入],然后在下拉菜单中选择[模块],如下图所示,然后进入下一步。

     

7、然后,在模块窗口中输入代码:

Sub 筛选相同数据(),Set Rng = Sheet1.Cells(Rows.Count, 1).End(xlUp)

Set rngs = Sheet2.Cells(Rows.Count, 1).End(xlUp)

For Each rn In Sheet1.Range("a3", Rng)

For Each rns In Sheet2.Range("a3", rngs),If rn = rns Then i = i + 1: Sheet3.Cells(i + 1, 1) = rn NextNextEnd Sub。

如下图所示,然后进入下一步。

     

8、随后,单击[开发工具]-[插入],插入表单控件,如下图所示,然后进入下一步。

     

9、接着,将表单控件命名为“筛选相同数据”,并将其与编写的Visual  Basic代码相关联,如下图所示,然后进入下一步。

     

10、最后,单击【筛选相同数据】按钮,将立即过滤工作表1的A列和工作表2的A列中的相同数据,并将其输入到工作表3的A列中。如下图所示。这样,问题就解决了。

     

本回答被网友采纳
第2个回答  2020-02-15

1、sheet1表A栏和sheet2表A栏有相同的数据,可以通过编写vba代码,将相同的数据填入sheet3表A栏中。

2、单击菜单栏中的【文件】,在下拉菜单中选择【另存为】。

3、弹出窗口中的【保存类型】处选择【Excel启用宏的工作簿】,然后点击【确定】。

4、打开刚才另存为的启用宏的工作簿,右边会有一个黄色的小!。

5、在工作表中,点击菜单栏【开发工具】,在其工具栏内,点击【visual basic】。

6、会进入VBA编辑界面!点击菜单栏【插入】,在其下拉菜单中,选择【模块】。

7、在模块窗口输入代码:Sub 筛选相同数据()Set Rng = Sheet1.Cells(Rows.Count, 1).End(xlUp)

Set rngs = Sheet2.Cells(Rows.Count, 1).End(xlUp)For Each rn In Sheet1.Range("a3", Rng) For Each rns In Sheet2.Range("a3", rngs)If rn = rns Then i = i + 1: Sheet3.Cells(i + 1, 1) = rn NextNextEnd Sub。

8、点击【开发工具】工具栏中的【插入】按钮,插入一表单控件。

9、将表单控件命名为“筛选相同数据”,并与编写的vba代码相关联。

10、点击“筛选相同数据”按钮,sheet1表A栏和sheet2表A栏有相同的数据就会被瞬间筛选输入sheet3表A栏中。

本回答被网友采纳
第3个回答  推荐于2017-09-01
举例·:一个excel文件,里面有一百多个工作表,但工作表名称没有规则顺序,不是按照sheet1、sheet2这样的顺序排列,现在需要把每个工作表里的A3数据提取出来,组成新的一列。
解决方法:用宏自定义函数
同时按Alt和F11进入宏界面,点菜单的插入,塻块,粘贴如下代码:

Function AllSh(xStr As String, i As Integer)
Application.Volatile
AllSh = Sheets(i).Range(xStr).Value
End Function

回到excel,在任意单元格输入=allsh("A3",ROW(A1))
公式向下复制。
第4个回答  推荐于2017-09-10
首先把多个EXCEL表合并成一个,菜单栏数据——筛选——自动筛选,把相同的数据复制一个,放于另一个新建的EXCEL文件中。

还可以参考:http://flswz.com/web/flzdc/archives/2006/200662895818.html本回答被提问者采纳
相似回答