如何从多个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、首先,
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列中。如下图所示。这样,问题就解决了。
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栏中。
解决方法:用宏自定义函数
同时按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))
公式向下复制。
还可以参考:http://flswz.com/web/flzdc/archives/2006/200662895818.html