ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1675|回复: 7

[已解决] 头痛了一天 请vba大牛小牛们都来帮帮忙:列首尾相连汇总 及 列+1的表示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-4-7 16:53 | 显示全部楼层 |阅读模式
一个问题发了两个区还没解决,这里是最后的希望了……
头痛了一天了,还请大家帮忙!!谢谢!!鞠躬~~

由表1:
地理 数学 语文
1      3      4
12    15    17
3      6      33
5              69
67
45

想要将每一列首尾相连成为新的一列,该怎么做?
实现如下效果

表2:
地理
1
12
3
5
67
45
数学
3
15
6
语文
4
17
33
69

如果可能的话 我的表1有多个sheet 想要全部放在表2的一个sheet里
不过我已经把表1的9个sheet拆分 手工合并也不太麻烦了
主要想求救如何把一个sheet里每一列首位相连成为一个新的列

其中,最头痛的就是从A列非空白的最后一行到B列第一行 的转换我不会 唉!!

[ 本帖最后由 shin711 于 2011-4-7 17:41 编辑 ]

Vocabulary Classified.revised.rar

39 KB, 下载次数: 26

需要进行汇总的表格

TA的精华主题

TA的得分主题

发表于 2011-4-7 17:04 | 显示全部楼层
问题倒是不难,结果放在哪里?还有每列只有字段名,下面是空值的要不要罗列?
手工做个结果示意一下。

TA的精华主题

TA的得分主题

发表于 2011-4-7 17:08 | 显示全部楼层
新加一个工作表,结果写到这个工作表:
Sub Macro1()
    Dim sh As Worksheet, arr, i&, m&, n&, j&
    For Each sh In Sheets
        If sh.Name <> ActiveSheet.Name Then
            n = n + 1
            arr = sh.[a1].CurrentRegion
            ReDim brr(1 To UBound(arr) * UBound(arr), 0)
            m = 0
            For j = 1 To UBound(arr, 2)
                For i = 1 To UBound(arr)
                    If Len(arr(i, j)) Then
                        m = m + 1
                        brr(m, 0) = arr(i, j)
                    End If
                Next
            Next
            Cells(1, n).Resize(m) = brr
        End If
    Next
End Sub

TA的精华主题

TA的得分主题

发表于 2011-4-7 17:10 | 显示全部楼层
Vocabulary Classified.revised.rar (46.63 KB, 下载次数: 32)

TA的精华主题

TA的得分主题

发表于 2011-4-7 17:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-4-7 17:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我滴妈呀,我刷新了一下的功夫,3楼已经贴出解答了,拜服
这次又慢了,下次遇到简单问题跑快点。

TA的精华主题

TA的得分主题

发表于 2011-4-7 17:18 | 显示全部楼层
Sub Fsyyyy()
    For i = 2 To [a1].End(xlToRight).Column
        Cells(1, i).Resize(Cells(65536, i).End(xlUp).Row).Copy Destination:=[a65536].End(xlUp)(2)
    Next
'    [b1].Resize(65536, i - 2).Clear '清除原数据
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-4-7 17:40 | 显示全部楼层
EH太帅了!!!
vba板块太帅了!!!

楼上的各位大虾们,你们都是热心的大好银!!!

zhaogang1960的代码很好用!!!!
fsyyyy的我再学习一下!!!!

学无止境,我用咆哮体向各位致敬!!!!!


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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-27 10:37 , Processed in 0.043287 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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