广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

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

    来源:网络收集  点击:  时间:2024-07-30
    【导读】:
    在Excel做数据处理时,有时需要将两个工作表的表头做对比,两个工作表的表头顺序不一致,将其中一张表的X表头下的数据导出到另一张表对应的X表头下,下面就为大家讲解相同表头导出数据的VBA实现方式。工具/原料moreExcel方法/步骤1/5分步阅读

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

    2/5

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

    3/5

    双击该按钮进入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

    4/5

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

    5/5

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

    注意事项

    写了VBA代码的表格存储时要存储成.xlsm的格式才能启用VBA或宏功能

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_1035014.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 12:00:47  耗时:0.029
    0.029s