Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3939|回复: 7

[已解决]行列转换

[复制链接]
发表于 2014-3-31 22:26 | 显示全部楼层 |阅读模式
如何将表2还原表1
最佳答案
2014-4-1 03:32
………………

Excel_VBA示例__行列数据转换(按设定数量分组排放).zip

22.02 KB, 下载次数: 8

发表于 2014-4-1 03:31 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr(1 To 20000, 1 To 5), i&, j%, k%, s&
  3. arr = Sheet2.Range("b2").CurrentRegion
  4. For i = 1 To UBound(arr)
  5.     For j = 1 To UBound(arr, 2) Step 4
  6.         If arr(i, j) <> "" Then
  7.             s = s + 1
  8.             For k = 0 To 3
  9.                 brr(s, k + 1) = arr(i, j + k)
  10.             Next
  11.             brr(s, 5) = s + 110
  12.         End If
  13.     Next
  14. Next
  15. Range("l2").Resize(s, 5) = brr
  16. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-1 03:32 | 显示全部楼层    本楼为最佳答案   
………………

Excel_VBA示例__行列数据转换(按设定数量分组排放).zip

22.64 KB, 下载次数: 20

回复

使用道具 举报

发表于 2014-4-1 20:23 | 显示全部楼层
dsmch 发表于 2014-4-1 03:31

数据第5列是从111开始的自然数递增等差数列,用代码:brr(s, 5) = s + 110

如果是无规律的数字呢?怎么变通?
回复

使用道具 举报

发表于 2014-4-1 20:28 | 显示全部楼层
张雄友 发表于 2014-4-1 20:23
数据第5列是从111开始的自然数递增等差数列,用代码:brr(s, 5) = s + 110

如果是无规律的 ...

这个要求貌似没有道理,实在要这样做,产生随机数
回复

使用道具 举报

发表于 2014-4-1 20:30 | 显示全部楼层
dsmch 发表于 2014-4-1 20:28
这个要求貌似没有道理,实在要这样做,产生随机数

大师可能没看明白我的意思,我是指怎么不用代码直接复制之类的?
回复

使用道具 举报

发表于 2014-4-1 20:34 | 显示全部楼层
源数据和第五列看似没有一点渊源,不清楚这个数据出至哪里
回复

使用道具 举报

 楼主| 发表于 2014-4-3 19:21 | 显示全部楼层
为什么组一多,就会"运行时错误9,下标越界"
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 09:31 , Processed in 0.556131 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表