Excel精英培训网

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

[已解决]各位老师,请教关于跨表统计合计的问题

[复制链接]
发表于 2012-12-21 17:09 | 显示全部楼层 |阅读模式
    各位老师,有个难题想您们请教,在附件中有北京等地的家用电器的销售情况的简易报表,实际上有19张表格,有没有办法在一张汇总表中反应出各类家用电器的销售总额,在附加中的各地的数据是每月有变化的,我实在想不出有什么办法,工作量太大了,水平不够,请各位老师指导一下,
    另外有没有办法给几张名称是“新建 Microsoft Office Excel 97-2003 工作表”或者是“复件 新建 Microsoft Office Excel 97-2003 工作表”、“ 复件 (2)  新建 Microsoft Office Excel 97-2003 工作表”的工作表按照自定义的顺序(北京、天津、上海)更改工作薄名称
最佳答案
2012-12-21 18:40
汇总.rar (33.38 KB, 下载次数: 62)

新建文件夹 (2).rar

30.27 KB, 下载次数: 11

发表于 2012-12-21 18:40 | 显示全部楼层    本楼为最佳答案   
汇总.rar (33.38 KB, 下载次数: 62)
回复

使用道具 举报

发表于 2012-12-21 18:42 | 显示全部楼层
第二个问题没有必要了吧!有多少工作量啊?
回复

使用道具 举报

 楼主| 发表于 2012-12-24 11:01 | 显示全部楼层
感谢老师的回复,马上看一下
回复

使用道具 举报

发表于 2012-12-24 17:16 | 显示全部楼层
可以把宏贴上来么,也想学习下。
回复

使用道具 举报

 楼主| 发表于 2012-12-25 22:56 | 显示全部楼层
zjdh 发表于 2012-12-21 18:40

非常非常感谢老师的指导,真心祝您圣诞快乐,这段代码有不明白的还要多多请教您,
回复

使用道具 举报

 楼主| 发表于 2012-12-26 09:57 | 显示全部楼层
M = 1         ‘这是什么意思
    Dirs = Dir(ThisWorkbook.Path & "\*.xls")   Dirs是什么
    While Dirs <> ""
        If Dirs <> ThisWorkbook.Name Then
            myDatePath = ThisWorkbook.Path & "\" & Dirs
您这段代码的整体思路您是怎样考虑的,以我的现有知识理解有点困难
实际的应用可能还需要改变一些,再次感谢您
回复

使用道具 举报

发表于 2012-12-27 16:01 | 显示全部楼层
本帖最后由 zjdh 于 2012-12-27 16:03 编辑

Sub HZ()
    Application.ScreenUpdating = False  '关闭屏幕刷新
    Range("A2:I65536").ClearContents    '清除记录
    ARR = Range("A1:I500")              '设置数组
    M = 1                               '预设指针
    Dirs = Dir(ThisWorkbook.Path & "\*.xls")  '在同一目录中提取一个文件xls名
    While Dirs <> ""                   '直到提取完毕
        If Dirs <> ThisWorkbook.Name Then   '若文件不是本文件
            myDatePath = ThisWorkbook.Path & "\" & Dirs   '设置路径及文件名称
            Set WB = GetObject(myDatePath)     '打开文件
            BRR = WB.Sheets(1).UsedRange       '提取该文件表一的所有内容
            For J = 2 To UBound(BRR)           '对提取的内容逐行循环
                For I = 2 To UBound(ARR)       '对汇总数据内容逐行循环
                    If BRR(J, 2) = ARR(I, 2) Then  '若名称一致
                        For K = 3 To 9             '逐项相加
                            ARR(I, K) = ARR(I, K) + BRR(J, K)
                        Next
                        Exit For
                    End If
                Next
                If I > 500 Then          '若汇总数据中没有
                    M = M + 1            '修正指针
                    ARR(M, 1) = M - 1    '记录序号
                    For K = 2 To 9       '逐项记录
                        ARR(M, K) = BRR(J, K)
                    Next
                End If
            Next
            WB.Close False     '关闭文件
        End If
        Dirs = Dir             '提取下一个文件名称
    Wend
    Application.ScreenUpdating = True  '开启屏幕刷新
    Range("A1").Resize(M, 9) = ARR     '将数据输入到汇总表
    MsgBox "汇总完毕!"
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-1-1 21:49 | 显示全部楼层
谢谢zjdh老师,已经打印放在身边有时间就学习,真的、真的非常感谢您的注解,我要更加努力学习,争取早点掌握,祝您元旦快乐
回复

使用道具 举报

 楼主| 发表于 2013-1-1 21:50 | 显示全部楼层
zjdh 发表于 2012-12-27 16:01
Sub HZ()
    Application.ScreenUpdating = False  '关闭屏幕刷新
    Range("A2:I65536").ClearContent ...

谢谢zjdh老师,已经打印放在身边有时间就学习,真的、真的非常感谢您的注解,我要更加努力学习,争取早点掌握,祝您元旦快乐
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 08:25 , Processed in 0.474753 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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