设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] 用VBA将多行多列区域转为一列

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:06:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有时需要在Excel中将某个多行多列的区域转换到一列中,下面的VBA代码可以实现这个目的。
    1.按快捷键Alt+F11,打开VBA编辑器,在右侧代码窗口中粘贴下列代码:
Sub RangeToOneCol()
Dim TheRng, TempArr
Dim i As Integer, j As Integer, elemCount As Integer
On Error GoTo line1
Range("a:a").ClearContents
If Selection.Cells.Count = 1 Then
  Range("a1") = Selection
Else
  TheRng = Selection
  elemCount = UBound(TheRng, 1) * UBound(TheRng, 2)
  ReDim TempArr(1 To elemCount, 1 To 1)
  For i = 1 To UBound(TheRng, 1)
    For j = 1 To UBound(TheRng, 2)
      TempArr((i - 1) * UBound(TheRng, 2) + j, 1) = TheRng(i, j)
    Next
  Next
  Range("a1:a" & elemCount) = TempArr
End If
line1:
End Sub
    上述代码可以将所选择的区域转换到A列中。
    2.关闭VBA编辑器,返回Excel工作表界面。
    3.如果A列包含数据,先在工作表的最左侧插入一列,以便放置转换后的数据。
    4.选择需要转换的区域,按Alt+F8,打开“宏”对话框,选择上述代码中的宏名“RangeToOneCol”运行代码。
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-13 18:58 , Processed in 0.239141 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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