excel中数据行列转换问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 16:43:56
有列数据1-10000,如何用最快的速度让它转成每行10位数的行数据?

使用ALT+F11,打开VB编辑器,插入模块,复制下面代码:

本程序需要把要变换的数据命名为"数据"方法:选中该区域,在名称框内输入"数据"即可,然后按程序要求输入每行要填的数据行的数目.
按照你的说明,即在弹出的行数里输入10即可..

Sub 转换()
Dim numcol As Integer
Dim numrow As Long
Dim i As Long
Dim x As Integer
Dim numperrow As Integer
numperrow = InputBox("请输入每行要填的数据行的数目:")
Range("数据").Select
numrow = Selection.Rows.Count '数据区的行数
numcol = Selection.Columns.Count '数据区的列数
x = numperrow * numcol
Range("a1").Select
For i = 1 To numrow '以数据的每一行为单位进行剪切
Range("数据").Rows(i).Cut
ActiveSheet.Paste
Selection.Offset(, numcol).Select
If (i Mod numperrow) Then '判断是否要换行
Else: Selection.Offset(1, -x).Select
End If
Next i
End Sub

在楼上几位的引导下,发现
还可以=INDEX($A:$A,(ROW(A1)-1)*10+COLUMN()-1,1)
呵呵 凑个热闹~

=OFFSET($A$1,(ROW(A1)-1)*10+COLUMN(A1)-1,0)

向右复制10列,再向下复制