如何将excel中很多行的内容放到一行去?

如何将excel中很多行的内容放到一行去?比如说一个表共有1-4 4行,每行有3列,如何将这个表中的内容变成从4行3列,变成1行12列?

这个可以使用公式或者VBA来完成,但是相比之下,VBA更灵活一些,不管是多少行多少列,都可以一次完成,如果采用公式,当行数列数变化后公式就要做相应的调整,下面是使用VBA来完成的。

使用方法:点击转置为行按钮,会出现“请选择转置的区域”,然后在工作表中选择你的数据,然后确定,完成后会出现“请选择放置的位置”,点击选择后,就将多行转职成为一行。以下是录制的效果及执行代码


以下是代码

Sub hang()

Dim a, b As Object

Dim n!

Set a = Application.InputBox("请选择要转职的区域", , , , , , , 8)

Set b = Application.InputBox("请选择要放置的位置", , , , , , , 8)

    For Each c In a

        b.Offset(, n + 1 - 1) = c

        n = n + 1

    Next

End Sub


在VBA编辑窗口中新建一个模块,将代码复制到模块中,点击执行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-11
你可以使用公式&,将其他四行的内容合并起来。不过这样做只能是一列一列的做,不能一整行的来;也没法换成12列。你先弄成1行后再想办法吧
希望对你有用。追问

我试过用INDEX函数,可以做到!如果有熟悉VBA的朋友,请指导一下!

第2个回答  推荐于2016-04-16
=INDEX($A$1:$C$4,INT((COLUMN(A1)-1)/3)+1,MOD(COLUMN(A1)-1,3)+1)
公式右拉追问

谢谢,我就采用你的了,不过能不能解释一下这个公式啊,万分感谢!

本回答被提问者采纳
第3个回答  2011-04-12
这个你也可以引用,也可以自己把它们手动粘贴到一个单元格!
相似回答