Excel VBA 两个工作表按相同表头导出数据

 时间:2026-02-12 00:50:53

1、如果需要导出的表为A表,被导出的表为B表,那么A和B两张表需要在同一文件夹内。

Excel VBA 两个工作表按相同表头导出数据

2、在A表格中点击开发工具→插入→ActiveX控件→命令按钮,在表格中绘制一个按钮,后面导出操作只要一点击按钮即可。

Excel VBA 两个工作表按相同表头导出数据

Excel VBA 两个工作表按相同表头导出数据

3、双击该按钮进入VBA界面,输入以下代码:

Private Sub CommandButton1_Click()

    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

Excel VBA 两个工作表按相同表头导出数据

4、最后点击按钮稍等片刻,打开B表即可看到每列对应表头下的数据都被复制过来了,注意看A表和B表相同表头下的数据是对应的

Excel VBA 两个工作表按相同表头导出数据

Excel VBA 两个工作表按相同表头导出数据

5、然后由此可以扩展到一张表将多列数据根据表头分别导入到不同表的对应列中。

  • VBA怎么判定数据重复录入
  • Excel中如何利用VBA查找工作表
  • 如何使用VBA在Excel切换工作表时弹出提醒
  • VBA如何基于指定列对单元格区域重新排序
  • 如何利用VBA代码自动插入一行数据
  • 热门搜索
    顺其自然是什么意思 点映什么意思 纬线指示什么方向 色即是空是什么意思 什么发型适合自己 活着的意义是什么 英语四级成绩什么时候出来 你是什么垃圾 qc小组是什么意思 皮肤瘙痒用什么药