请会excel vba的朋友进(excel如何将一个表格中所有数据整合到同一竖列中来(如图)
这只是个请教问题的示范数据表,我要统计的数据表每年数据非常庞大,复制粘贴十分不方便。求一种公式或者用数据透视表之类的专业方法。之前的提问中有网友回答可以用vba,在这里求...
这只是个请教问题的示范数据表,我要统计的数据表每年数据非常庞大,复制粘贴十分不方便。
求一种公式或者用数据透视表之类的专业方法。
之前的提问中有网友回答可以用vba,在这里求个运算代码,能实现上述描述。
万谢加分
之前那位回答问题后又删掉回答记录的朋友,每个人都有不熟悉的领域,还希望得到你多多帮助啊 展开
求一种公式或者用数据透视表之类的专业方法。
之前的提问中有网友回答可以用vba,在这里求个运算代码,能实现上述描述。
万谢加分
之前那位回答问题后又删掉回答记录的朋友,每个人都有不熟悉的领域,还希望得到你多多帮助啊 展开
2个回答
展开全部
下面的代码在我的机器上测试通过,能满足你的要求,你试试看,如果遇到问题请拷屏说明:
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
更多追问追答
追问
能把代码复制一下发百度知道么?
那句,处理每一列,知道遇到空(第一行)。是“直到”么?
追答
是“直到”,上面的代码是文字(不是图片),可以复制。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询