请会excel vba的朋友进(excel如何将一个表格中所有数据整合到同一竖列中来(如图)

这只是个请教问题的示范数据表,我要统计的数据表每年数据非常庞大,复制粘贴十分不方便。
求一种公式或者用数据透视表之类的专业方法。
之前的提问中有网友回答可以用vba,在这里求个运算代码,能实现上述描述。

万谢加分

之前那位回答问题后又删掉回答记录的朋友,每个人都有不熟悉的领域,还希望得到你多多帮助啊

下面的代码在我的机器上测试通过,能满足你的要求,你试试看,如果遇到问题请拷屏说明:

Option Explicit
Sub YgB()
    Dim db, i, j, m, n, y, arr
    Set db = CreateObject("Scripting.Dictionary")
    i = 1 '从第一列开始
    While Cells(1, i) <> "" '处理每一列,知道遇到空(第一行)
        y = Trim(Cells(1, i))
        If db.Exists(y) Then
            '移动
            n = db(y) '当前列需要移动到n列后面
            m = Cells(Rows.Count, i).End(xlUp).Row '当前最后一行
            j = Cells(Rows.Count, n).End(xlUp).Row 'n列最后一行
            arr = Cells(2, i).Resize(m - 1, 1)
            Cells(j + 1, n).Resize(m - 1, 1) = arr
            Columns(i).ClearContents
        Else
            '添加
            db(y) = i
        End If
        i = i + 1 '下一列
    Wend
End Sub追问

能把代码复制一下发百度知道么?

那句,处理每一列,知道遇到空(第一行)。是“直到”么?

追答

是“直到”,上面的代码是文字(不是图片),可以复制。

追问

叩谢,我试试TVT

追答

如果你遇到问题,请拷屏两个内容,报错的弹出窗口、点“调试”按钮后有黄色条的代码屏幕。

追问

真是太太太太太太太神奇了!简直佩服得五体投地…原来编程这么好玩→_→)帮了大忙!!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-13
给个邮箱,写个样本发给你追问

你上传百度知道吧,,居然不让我留邮(这样也不能发)箱

追答

楼上有人答了,就采用他的吧

追问

您好,http://zhidao.baidu.com/question/1606768769792749107.html

这条评论我把分给您。

追答

额,上午出去了,貌似没法再答了

相似回答