1、如果需要导出的表为A表,被导出的表为B表,那么A和B两张表需要在同一文件夹内。
2、在A表格中点击开发工具→插入→ActiveX控件→命令按钮,在表格中绘制一个按钮,后面导出操作只要一点击按钮即可。
3、双击该按钮进入VBA界面,输入以下代码:Private Sub CommandButton1_Cli艘早祓胂ck() Dim target As Workbook Dim path As String path = ThisWorkbook.path Set target = Workbooks.Open(Filename:=path & "\" & "test.xlsx") '打开比较的工作表 Dim grid1, grid2 As Range '定义两个区域 For Each grid1 In ThisWorkbook.Sheets(1).Range(Cells(1, 1).Address, Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column).Address) '区域1是本表中第一行所有非空表头数据 For Each grid2 In target.Sheets(1).Range(Cells(1, 1).Address, Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column).Address) '区域2是目标表中第一行所有非空表头数据 If grid1 = grid2 Then '如果两个表头相同 ThisWorkbook.Sheets(1).Range(Cells(2, grid1.Column).Address, Cells(Cells(Rows.Count, grid1.Column).End(xlUp).Row, grid1.Column).Address).copy '复制本表该表头列下的所有数据 target.Sheets(1).Range(Cells(target.Sheets(1).Cells(Rows.Count, grid2.Column).End(xlUp).Row + 1, grid2.Column).Address, Cells(target.Sheets(1).Cells(Rows.Count, grid2.Column).End(xlUp).Row + 1, grid2.Column).Address).PasteSpecial Paste:=xlPasteValues '将复制的数据从目标表对应表头列下的起始空单元格处开始粘贴 End If Next Next target.Close (True) '将目标表格保存并关闭End Sub
4、最后点击按钮稍等片刻,打开B表即可看到每列对应表头下的数据都被复制过来了,注意看A表和B表相同表头下的数据是对应的
5、然后由此可以扩展到一张表将多列数据根据表头分别导入到不同表的对应列中。