微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
在对数据进行统计分析时,经常需要把多行多列数据转化为一列!
有人说,这还不简单?!比如下面的方法:
方法1:复制一列,再粘贴一列;
方法2:利用错位引用;
方法3:利用剪贴板;
方法4:利用数据透视表
上面4种方法,小编只能哈哈大笑了!!!
请看,小编的方法:
温馨提示:在转化前,先选择待转化的数据或数据区域!!
实现上述功能,所需代码如下:
- Sub RangeToOneCol()
- Dim TheRng, TempArr
- Dim i As Integer, j As Integer, elemCount As Integer
- On Error GoTo line1
- Range("a:a").ClearContents
- MsgBox "请先选择需要被转化的数据区域!"
- 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
代码窗口的截图,如下:
插入一命令按钮(比如名称为“点我”),把上面的代码赋于这个按钮,这样就把既浪费时间又容易出错的事情,轻轻按下按钮就可以解决了。