excel里面怎么把数据排到一列?

我导入的数据是从左到右一行一行排列的,顺序是
A1——G1
A2——G2
……
A2000——G2000
我现在想把这些数据全按顺序排到一列该怎么排啊?
就是像这样:
A1
B1
C1
D1
F1
G1
A2
B2
……
G2
……
A2000
……
G2000
谢谢各位大侠了
准备用宏来做了,但是变量怎么表示?
Sub rows()
'
' rows Macro
' Macro recorded 10/20/2009 by Wang Dong
'

'
Range("A1:E1").Select
Selection.Copy
Range("I1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
s = 6
For i = 2 To 2360
Range("A"&cstr(i):"E"&cstr(i)).Select
Application.CutCopyMode = False
Selection.Copy
Range("I" & CStr(s)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
s = s + 5
Next i

End Sub
运行错误,里面那个 Range("A"&cstr(i):"E"&cstr(i)).Select的正确表示应该是怎么样的呢?没学过Vb 就是A列i行用语言写出来应该用什么格式呢?

选定区域——复制——置于区域外——右键——选择性粘贴——转置——确定。
再删除原来的区域(行或列)。

还是,7列转换为1列:
数据在Sheet1当中的A1起……
在Sheet2的A1输入
=OFFSET(Sheet1!$A$1,INT((ROW(Sheet1!A1)-1)/7),MOD(ROW(Sheet1!A1)-1,7),)&""
回车并向下填充。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-20
可以这样:
假设数据从A1--G1
那么在一空白列输入
=offset($A$1,int(column(),6),mod(column(),6),1,1) 一直右拉
第2个回答  2009-10-20
这么多数据,用VBA做吧。

这种问题很多人都会往转置粘贴的死胡同里面钻,其实只需要简单的一个嵌套循环就可以了。
下列代码假定把结果放在J列即第10列:

Sub dataTraspose()
Dim I%, J%
I = Range("A65536").End(xlUp).Row
For J = 1 To I
For k = 1 To 7
Cells(k + (J - 1) * 7, 10) = Cells(J, k)
Next k
Next J
End Sub

数据太多,7×2000=14000行,放在同一列如果觉得不太合适,可以修改一下代码,如每3000行就换一列重新开始。
相似回答