这个可以使用公式或者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编辑窗口中新建一个模块,将代码复制到模块中,点击执行。
我试过用INDEX函数,可以做到!如果有熟悉VBA的朋友,请指导一下!
谢谢,我就采用你的了,不过能不能解释一下这个公式啊,万分感谢!
本回答被提问者采纳