有时需要在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”运行代码。

版权声明

本文仅代表作者观点,不代表本站立场。
本站资源均来自互联网整理,版权归原作者所有,切勿用作非法使用和未经授权的商用,因此带来的法律风险与本站无关。

本文链接:http://www.chousj.cn/exceljc/868.html

发表评论

评论列表(0人评论 , 106人围观)
☹还没有评论,来说两句吧...

免费资源分享网_电脑操作教程_免费源代码下载_免费字体下载_高清电脑壁纸

http://www.chousj.cn/

| 渝ICP备15004826号-8

Powered By

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯