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

 时间:2024-10-12 09:02:04

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

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

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

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

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

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

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

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

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

  • VBA怎么判定数据重复录入
  • Excel中如何利用VBA查找工作表
  • 如何使用VBA在Excel切换工作表时弹出提醒
  • VBA如何基于指定列对单元格区域重新排序
  • 如何利用VBA代码自动插入一行数据
  • 热门搜索
    手抄报简单又漂亮 关于中秋的手抄报 保护校园环境手抄报 竞选大队委手抄报 书的手抄报 爱牙护齿手抄报 小学生安全手抄报大全 莲文化手抄报 关于写字的手抄报 关于数学手抄报图片