百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

VBA从多个Excel文件复制数据

liuian 2025-02-06 15:41 43 浏览

需求

如果您有多个Excel文件,并且每个文件都包含一个名为wsData的工作表,您想要从每个文件的wsData工作表中复制数据到同一个wsOutput工作表中,同时保留每个wsData工作表的表头,那么您需要编写一个能够循环遍历文件夹中所有Excel文件,并逐个打开它们以执行复制操作的VBA宏。

以下是一个示例代码,它假设所有的Excel文件都位于一个特定的文件夹中,并且每个文件都有一个名为wsData的工作表。该宏将打开每个文件,复制wsData的表头到wsOutput(如果它是第一个文件,或者如果之前的文件已经复制了表头,则不会重复复制),然后复制数据到wsOutput的下一行。

VBA代码实现

Sub CopyDataFromMultipleFiles()
    Dim folderPath As String
    Dim fileName As String
    Dim wbData As Workbook
    Dim wsData As Worksheet
    Dim wsOutput As Worksheet
    Dim rngHeader As Range
    Dim lastRowOutput As Long
    Dim firstFile As Boolean
      
    ' 设置输出工作簿和输出工作表
    Set wsOutput = ThisWorkbook.Sheets("Output")
      
    ' 清除输出工作表的内容(如果需要)
    wsOutput.Cells.Clear
      
    ' 设置文件夹路径
    folderPath = "F:\practice\vba-demo\data\"
    fileName = Dir(folderPath & "*.xls") ' 假设文件是.xlsx格式
    firstFile = True ' 标记是否为第一个文件,以决定是否复制表头
    
    If fileName = "" Then
        MsgBox "目录:" & folderPath & "下没有找到.xls文件"
        End
    End If
    
      
    ' 循环遍历文件夹中的每个文件
    Do While fileName <> ""
        ' 构建完整的文件路径
        Dim fullFilePath As String
        fullFilePath = folderPath & fileName
          
        ' 打开工作簿
        Set wbData = Workbooks.Open(fullFilePath)
          
        ' 设置wsData工作表
        Set wsData = wbData.Sheets("wsData")
          
        ' 检查是否找到了wsData工作表
        If Not wsData Is Nothing Then
            ' 复制表头到输出工作表(仅当处理第一个文件时)
            If firstFile Then
                Set rngHeader = wsData.Range("A1").CurrentRegion.Rows(1) ' 假设表头在第一行
                rngHeader.Copy Destination:=wsOutput.Range("A1")
                firstFile = False ' 标记已经复制过表头
            End If
              
            ' 找到输出工作表的最后一行
            lastRowOutput = wsOutput.Cells(wsOutput.Rows.Count, "A").End(xlUp).Row + 1
              
            ' 复制数据到输出工作表
            wsData.Range("A2").CurrentRegion.Offset(1, 0).Copy Destination:=wsOutput.Cells(lastRowOutput, 1)
        Else
            MsgBox "在文件 '" & fullFilePath & "' 中未找到名为 'wsData' 的工作表。"
        End If
          
        ' 关闭工作簿,不保存更改
        wbData.Close SaveChanges:=False
          
        ' 获取下一个文件名
        fileName = Dir()
    Loop
      
    ' 提示操作完成
    MsgBox "数据已从多个文件中复制到输出工作表。"
End Sub

在这个宏中,我们首先设置了输出工作簿和输出工作表,并清除了输出工作表的内容(如果需要的话)。然后,我们定义了文件夹路径,并使用Dir函数遍历该文件夹中的所有Excel文件。对于每个文件,我们打开它,检查是否存在名为wsData的工作表,并复制表头和数据到输出工作表。在复制数据之前,我们找到输出工作表的最后一行,以便将数据放在正确的位置。最后,我们关闭工作簿并不保存更改,然后继续处理下一个文件,直到遍历完所有文件。

请注意,这个宏假设所有wsData工作表的表头都在第一行,并且数据区域紧接着表头。如果您的实际情况有所不同,您可能需要调整rngHeader和复制数据范围的代码以适应您的具体情况。此外,确保将文件夹路径更改为包含您Excel文件的实际文件夹路径。

相关推荐

天翼网关怎么设置wifi(天翼网关怎么设置wifi密码)

天翼网关设置wifi的方法步骤如下:首先打开浏览器,在地址栏中输入198.168.1.1,确定。输入用户名、密码,如果以前没改过,这个密码就在网关背面的标签上面,可以去查看一下,输入后点击“确定”。点...

十大软件免费下载安装(软件大全下载)

以下是十大永久免费电视直播软件APP:央视频(手机端)):官方看电视直播软件,画质清晰,需要借助手机投屏操作。央视投屏助手(盒子端):与央视频配合使用,提供高清电视直播。电视家:智能电视、电视盒子或智...

电脑死机咋办(电脑开机蓝屏怎么办)

可按照如下方式重启:1、直接按下“CTRL+ALT+DEL”键,然后选择重启;2、如方式1无效,可按住电源键数秒进行强制关机,然后再次启动即可;3、最后一个办法就是,拔出电池和电源适配器,然后重新安装...

追剧神器免费下载(苹果手机免费追剧软件)

是正规网站茶杯狐官方网站是一款正规的视频播放软件。茶杯狐官方网站拥有各种电影、电视剧、综艺、动漫等视频任由用户们在线自由观看。茶杯狐官方网站所有的视频画质也非常的超清流畅,很安全。茶杯狐软件是很好用的...

平板电脑一键root工具(平板电脑 root)

1、下载APP:ROOT大师;2、打开小米平板USB调试模式;3、安装驱动,提示连接成功4、获取ROOT权限。5、显示更新成功后依次选择:返回-重新启动-系统6、重启后打开桌面的super...

autocad2010激活码怎么获取(cad2010最新激活码密钥免费领取)
  • autocad2010激活码怎么获取(cad2010最新激活码密钥免费领取)
  • autocad2010激活码怎么获取(cad2010最新激活码密钥免费领取)
  • autocad2010激活码怎么获取(cad2010最新激活码密钥免费领取)
  • autocad2010激活码怎么获取(cad2010最新激活码密钥免费领取)
手机u盘驱动器下载(手机u盘驱动器下载安装)

不能直接手机下载到u盘,可以下到手机,然后手机连电脑copy到u盘你只需把你心爱的U盘插到电脑上,然后它会有一个新硬安装向导当它要搜索驱动程序时,你只需将其浏览到你所下载的usb万能驱动文件夹点下...

组装电脑配置价格表(组装电脑顶级配置清单及价格)
  • 组装电脑配置价格表(组装电脑顶级配置清单及价格)
  • 组装电脑配置价格表(组装电脑顶级配置清单及价格)
  • 组装电脑配置价格表(组装电脑顶级配置清单及价格)
  • 组装电脑配置价格表(组装电脑顶级配置清单及价格)
旺旺下载app(旺旺下载链接是多少)

可以下载多换几个下载软件试试直接登录官方appstore里面下载就可以使用了。1、首先在手机中找到appstore。2、点击进入后,在上方的搜索条里输入“阿里旺旺”,选中官方的阿里旺旺。3、点击进...

主机显卡在哪个位置(主机显卡在哪个位置看)

1、集成显卡的位置一般在机箱后面的中部,插口是竖立的。独立显卡的位置一般在机箱后面的下部,插口是横平的。2、独立显卡,一般插在主板中部的插槽,用手可以直接拔出。如果分不清哪个是显卡的插口,就直接看显示...

windows7ultimate下载(windows7 ultimate)

要下载澪Ultimate启动器,您可以按照以下步骤进行操作:1.打开您的网络浏览器,访问澪Ultimate启动器的官方网站或相关下载页面。2.在网站上找到适用于您的操作系统的下载选项。3.点击下...

苹果首次激活时间查询(iphone激活查询官网入口)

登陆苹果官网输入手机的序列号,查看手机的保修日期就可以了,一般保修到期的前一年就是手机的开机激活时间。查看第一次开机激活时间操作方法:1、首先打开设置2、点击通用3、点击关于本机...

u盘启动哪个好用(u盘启动盘哪个最好)

大白菜超级U盘启动盘制作工具,打造你真正的万能U盘!安装后你在U盘里是看到什么文件的,是隐藏分区,这样你放存别的东西时也不会搞乱了。大白菜超级U盘启动盘制作工具,是纯傻瓜式制作U盘启动盘功能的超级万能...

腾达路由器高级设置在哪里(腾达路由器怎么设置安全性高)

方法/步骤分步阅读1/11打开新购的腾达路由器,查看路由器背面的默认IP和管理员密码。小提示:密码为:admin默认管理IP:192.168.0.12/11接好腾达路由器和插上电源通电,等待2-3分钟...

dell新版bios设置恢复(戴尔bios恢复设置)

1)、开机后,在看到DELL图标时,按3下F2,进入BIOS。(灰色界面)2)、分别按键盘上的CapsLock,ScrollLock,以及NumLock三个键,使键盘上相应的三个指示灯点亮。3)、...