在Excel中通过VBA程序实现多表格多页批量复制和筛选数据(计算均值和标准差)2021-12-27(文章中有全部源程序,我的资源中有源文件)

本文介绍了一个VBA程序,用于将同一文件夹中的所有Excel表格数据批量合并到一个工作簿中,并计算每列数据的均值和标准差。程序首先读取指定文件夹下的所有Excel文件,然后逐个工作簿、工作表提取数据,最后计算并显示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求: 将同一文件夹中的所有表格内的数据批量提取到同一个表格中,并计算均值和标准差。

 

vba批量合并指定的sheet_如何将一个EXCEL中的多个SHEET中内容合并到一个SHE...-excel合并多个sheet,sheet批量合并...

 

原始数据(同一个工作簿中有不相等的多个工作表,每个工作表有不相等的多行数据)

处理后的数据(可以通过修改程序变成你想要的格式)

原始文件可以在我的资源中下载, 以下是源程序:

Sub CopyData()
    Dim MyFile As String
    Dim Arr(100) As String
    Dim count As Integer
    Dim wb As Workbook
    Set Dwb = ActiveWorkbook  '用Dwb代表要存放数据的工作簿
    
    FileAddress = "D:\Users\tingfu.wei\Desktop\数据整理\"
    
    '读取工作簿名称并保存到一个数组中
    MyFile = Dir(FileAddress & "*.xlsx")  '读取指定文件夹下的xlsx格式的工作簿
    'MyFile = Dir("D:\Users\tingfu.wei\Desktop\数据整理\" & "*.xlsx")  '读取指定文件夹下的xlsx格式的工作簿
    count = count + 1      '统计工作簿数量
    Arr(count) = MyFile
    
    Do While MyFile <> ""
        MyFile = Dir
        If MyFile = "" Then
            Exit Do
        End If
        count = count + 1
        Arr(count) = MyFile         '将文件的名字存在数组中
    Loop
      
    '提取数据和计算
    [5:500] = ""         '清除5-500行区域的数据
    [A6:A500] = "空白"
   
    x = 11    '保存数据的起始行数
    n = x
    
    For i = 1 To count     '从第一个工作簿到最后一个工作簿循环
        Workbooks.Open Filename:=FileAddress & Arr(i)  '循环打开制定文件夹下的Excel文件
                    
        Set wb = ActiveWorkbook  '用wb代表打开的工作簿
        Wbname = ActiveWorkbook.Name    '获取打开的工作簿的名称
        
        y = 2    '保存数据的起始列数
        p = y
        
        '写入标题
        Dwb.Shee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值