Excel精英培训网

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

[已解决]求助大侠这个问题如何解决???

[复制链接]
发表于 2014-11-4 17:42 | 显示全部楼层 |阅读模式

表中有“汇总”、“1”、“2”、“3”、“4”,5张表格,我想要把“1”、“2”、“3”、“4”,这4张表第一行行标题跟“汇总”第一行标题名称一致的数字提取到汇总这张表中,就如附件中所列示内容相一致。如何才能实现呢?这个问题应该只能用VBA才能实现。
最佳答案
2014-11-4 18:56
本帖最后由 zjdh 于 2014-11-4 19:33 编辑

工作簿1.rar

8.99 KB, 下载次数: 9

发表于 2014-11-4 18:27 | 显示全部楼层
回复

使用道具 举报

发表于 2014-11-4 18:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2014-11-4 19:33 编辑

工作簿.rar

15.03 KB, 下载次数: 18

回复

使用道具 举报

 楼主| 发表于 2014-11-4 19:28 | 显示全部楼层
zjdh 发表于 2014-11-4 18:56

Sub TEST()
   Set SH = Sheets("汇总")
    SH.Rows("2:65536").ClearContents
        For I = 1 To Sheets.Count
            With Sheets(I)
            If .Name <> "汇总" Then
                For J = 1 To .Range("A1").End(2).Column
                    Set L = SH.Rows(1).Find(.Cells(1, J).Value)
                    If Not L Is Nothing Then
                        CL = L.Column
                        .Range(.Cells(2, J), .Cells(.Cells(65536, J).End(3).Row, J)).Copy SH.Cells(65536, CL).End(3)(2)
                        AAAA = .Range(.Cells(2, J), .Cells(.Cells(65536, J).End(3).Row, J))
                    End If
                Next

回复

使用道具 举报

 楼主| 发表于 2014-11-4 19:30 | 显示全部楼层
icevic 发表于 2014-11-4 19:28
Sub TEST()
   Set SH = Sheets("汇总")
    SH.Rows("2:65536").ClearContents

可以帮我解释一下这个宏的意思吗?
回复

使用道具 举报

 楼主| 发表于 2014-11-4 19:30 | 显示全部楼层
zjdh 发表于 2014-11-4 18:56

厉害啊!就是我想要的!
回复

使用道具 举报

发表于 2014-11-4 19:46 | 显示全部楼层
很简单啊,没啥可解释的。
Sub TEST()
    Set SH = Sheets("汇总")            '设置变量为汇总表
    SH.Rows("2:65536").ClearContents  '清除原有记录
    For I = 1 To Sheets.Count     '循环处理工作表
        With Sheets(I)            '处理第 I 个表
            If .Name <> "汇总" Then   '如果不为“汇总表”
                For J = 1 To .Range("A1").End(2).Column    '首行逐个处理
                    Set L = SH.Rows(1).Find(.Cells(1, J).Value)   '在汇总表首行查找列标
                    If Not L Is Nothing Then       '如果存在
                        CL = L.Column              '提取列号
                        .Range(.Cells(2, J), .Cells(.Cells(65536, J).End(3).Row, J)).Copy SH.Cells(65536, CL).End(3)(2)
                        '将工作表被处理的列第二行至尾行的内容,复制到汇总表相同列标的尾行下一单元
                    End If
                Next
            End If
        End With
    Next
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 12:22 , Processed in 0.172354 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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