Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2387|回复: 0

批量处理多工作簿的平均值时,出现的状况

[复制链接]
发表于 2017-4-24 15:15 | 显示全部楼层 |阅读模式
本帖最后由 qiaodong64 于 2017-4-24 17:26 编辑

    数据格式是这样的,一共三列,需要每12行求一个平均,就是A2~A13,求平均然后放入D2,A14~A25求平均放入D3;B2~B13求平均放入E2,B14~B25求平均放入E3,后面以此类推。

    出现了第一个工作簿算出的平均值在range(D1~D29),然后到了第二个工作簿中的平均值在range(D30~D59)并且D2~D29的数据跟第一个工作簿一样,大家帮我修改下代码

Sub 平均值()
    Dim ph$, fn$, sh As Worksheet
    ph = ThisWorkbook.Path & "\"
    fn = Dir(ph & "*.xls")
    Do While fn <> ""
        If fn <> ThisWorkbook.Name Then
            With Workbooks.Open(ph & fn)
                For Each sh In .Sheets
                   Dim arr(1 To 20000, 1 To 3), i&, s&, j%
                   For i = 2 To Range("a65536").End(xlUp).Row Step 12
                     s = s + 1
                       For j = 1 To 3
                         arr(s, j) = Application.WorksheetFunction.Sum(Cells(i, j).Resize(12)) / 12
                       Next
                   Next
                   Range("d2").Resize(s, 3) = arr
                Next
                .Close True
            End With
        End If
        fn = Dir
    Loop
End Sub


调试.zip

85.79 KB, 下载次数: 1

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-10 11:49 , Processed in 0.153970 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表