Excel精英培训网

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

[已解决]行分组转列求助

[复制链接]
发表于 2014-4-3 20:49 | 显示全部楼层 |阅读模式
5学分
将表1用VBA转换成表2,请高手帮忙
最佳答案
2014-4-3 21:23
………………

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2014-4-3 20:51 | 显示全部楼层
附件如下

行分组转列求助.zip

7.65 KB, 下载次数: 8

行分组转列求助.zip

7.65 KB, 下载次数: 0

回复

使用道具 举报

发表于 2014-4-3 21:04 | 显示全部楼层
本帖最后由 dsmch 于 2014-4-3 21:21 编辑
  1. Sub Macro1()
  2. Dim arr, i&, j%, s&
  3. Sheet1.Activate
  4. arr = Range("a1").CurrentRegion
  5. s = 1
  6. For i = 3 To UBound(arr)
  7.     For j = 1 To UBound(arr, 2) Step 4
  8.         s = s + 1
  9.         Cells(i, j).Resize(1, 4).Copy Sheet2.Cells(s, 1)
  10.     Next
  11. Next
  12. [e2:h2].Copy Sheet2.[a1]
  13. Sheet2.Activate
  14. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-3 21:06 | 显示全部楼层
坐板凳上期待解答
回复

使用道具 举报

 楼主| 发表于 2014-4-3 21:14 | 显示全部楼层
01.Sub Macro1()

02.Dim arr, brr(1 To 20000, 1 To 5), i&, j%, k%, s&

03.arr = Sheet2.Range("b2").CurrentRegion

04.For i = 1 To UBound(arr)

05.    For j = 1 To UBound(arr, 2) Step 4

06.        If arr(i, j) <> "" Then

07.            s = s + 1

08.            For k = 0 To 3

09.                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

17.
回复

使用道具 举报

 楼主| 发表于 2014-4-3 21:17 | 显示全部楼层
此过程列数一多(4列一组的提取,但组一多)就会出现运行错误9,下标超界
回复

使用道具 举报

发表于 2014-4-3 21:23 | 显示全部楼层    本楼为最佳答案   
………………

行分组转列求助.zip

10.36 KB, 下载次数: 10

回复

使用道具 举报

 楼主| 发表于 2014-4-3 21:38 | 显示全部楼层
感谢dsmch,非常好,就是有空行,后续行的数据就没有了,其余效果非常好,
回复

使用道具 举报

发表于 2014-4-3 21:46 | 显示全部楼层
鄱湖人2013121 发表于 2014-4-3 21:38
感谢dsmch,非常好,就是有空行,后续行的数据就没有了,其余效果非常好,

不清楚你实际数据的结构,这样试试
arr = ActiveSheet.UsedRange
回复

使用道具 举报

 楼主| 发表于 2014-4-3 22:03 | 显示全部楼层
TKS
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 09:50 , Processed in 0.357710 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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