Excel精英培训网

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

[已解决]如何把多列数据整合到一列上?不是连接

[复制链接]
发表于 2014-4-2 16:27 | 显示全部楼层 |阅读模式
本帖最后由 gumingjian 于 2014-4-19 00:18 编辑

如何把多列数据整合到一列上?不是连接,而是顺序的输入到一列上。请高手帮忙写段代码,因为实际的数据远不止这些,谢谢!
最佳答案
2014-4-2 22:43
  1. Sub test()
  2.     Dim arr, result()
  3.     Dim lCount&, i&, j&
  4.     arr = Range("a1").CurrentRegion
  5.     If Not IsArray(arr) Then
  6.         MsgBox "A1单元格区域数据不足"
  7.         Exit Sub
  8.     End If
  9.     ReDim result(1 To (UBound(arr) - 1) * UBound(arr, 2), 1 To 1)
  10.     For i = 1 To UBound(arr, 2)
  11.         For j = 2 To UBound(arr)
  12.             lCount = lCount + 1
  13.             result(lCount, 1) = arr(j, i)
  14.         Next
  15.     Next
  16.     Range("f2:f" & Rows.Count).ClearContents
  17.     Range("f2").Resize(lCount).Value = result
  18.     MsgBox "完成"
  19. End Sub
复制代码
捕获.PNG

例子.zip

7.17 KB, 下载次数: 6

发表于 2014-4-2 16:32 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-2 16:34 | 显示全部楼层
.......

例子.rar

7.87 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2014-4-2 21:10 | 显示全部楼层
hwc2ycy 发表于 2014-4-2 16:32
楼主是要公式还是代码?

代码,谢谢
回复

使用道具 举报

发表于 2014-4-2 22:43 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     Dim arr, result()
  3.     Dim lCount&, i&, j&
  4.     arr = Range("a1").CurrentRegion
  5.     If Not IsArray(arr) Then
  6.         MsgBox "A1单元格区域数据不足"
  7.         Exit Sub
  8.     End If
  9.     ReDim result(1 To (UBound(arr) - 1) * UBound(arr, 2), 1 To 1)
  10.     For i = 1 To UBound(arr, 2)
  11.         For j = 2 To UBound(arr)
  12.             lCount = lCount + 1
  13.             result(lCount, 1) = arr(j, i)
  14.         Next
  15.     Next
  16.     Range("f2:f" & Rows.Count).ClearContents
  17.     Range("f2").Resize(lCount).Value = result
  18.     MsgBox "完成"
  19. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 17:17 , Processed in 0.290184 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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