利用VBA将多行多列区域转为一列
发布网友
发布时间:2024-05-28 12:41
我来回答
共1个回答
热心网友
时间:2024-06-03 09:26
有时需要在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”运行代码。
利用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 TheRn...
如何把excel中多行多列数据转成一列数据?急求!!!
1、由于以下VBA将所选择的区域转换到A列中,如果A列包含数据,先在工作表的最左侧插入一新的A列,以便放置转换后的数据。2、按快捷键Alt+F11,打开VBA编辑器,在右侧代码窗口中粘贴下列代码:Sub 选定区域转换为一列并去除空格()Dim TheRng, TempArrDim i As Integer, j As Integer, elemCount As...
excel怎么把多列数据变成一列
1、可以使用VBA事件完成该操作。复制如下代码到该sheet下的模块中,回到本sheet操作即可完成。依次点击如下按钮:菜单栏开发工具VBsheet如下代码是乘以100倍,其他倍数可替换相关参数如下代码只针对数值生效,其他无效。2、你先在要运算多少倍的单元格中输入公式:如在C3单元格中输入:=A3*3(A3的3倍)。
excel里面 多行多列的数据 转换成单列
Excel怎样把多列的数据按列顺序转换成单列
EXCEL VBA多行转一列,烦请大佬看下代码问题?
Cells(irow, Range(rg2).Column).Resize(UBound(arr), 1) = arr '输出数组数据到rg2所在的列中。irow = Cells(Rows.Count, Range(rg2).Column).End(3).Row + 1 '重新赋值,获取rg2所在列中已使用的最大行号+1 Next i MsgBox "转置完毕", 64 '弹出提示信息对话框 End Sub ...
如何用VBA代码将excel中不同项目下的多列多行数据转置成为不同项目对...
在M2中输入或复制粘贴下列公式 =IF(COLUMN(A:A)<=COUNTIF($A:$A,$G2),INDEX($B:$B,MATCH($G2,$A:$A,)+COLUMN(A:A)-1),"")下拉填充,右拉填充 当第1行出现第二和第三时,分别将上面公式中的 B:$B分别修改为$C:$C和$D:$D。
【高分!!!】excel如何把N多列的数据全部移动到第一列,不是合并几个列...
VBA,代码如下:Sub main()arr = Range("A1").CurrentRegion ReDim brr(UBound(arr, 2) * UBound(arr))For i = 1 To UBound(arr, 2)For j = 1 To UBound(arr)If arr(j, i) <> "" Then k = k + 1 brr(k - 1) = arr(j, i)End If Next j Next i [h1].Resize(UBound...
求助excel vba多行多列转为单列txt
Path Open Pth & "\Export.txt" For Output As #1 Arr = Range("A39:N500") For i = LBound(Arr) To UBound(Arr) For j = LBound(Arr, 2) To UBound(Arr, 2) Print #1, Arr(i, j) Next Next Close #1End Sub ...
Excel表格中单个 或 多行 多列 位置随机调换
利用Excel中自带的VBA编程可以实现多行或多列位置随机调换。软件版本:Office2013 方法如下:Excel中有三列数据如下,要使其随机调换位置:按下Alt+F11,在当前工作表对应的代码区,输入代码如下图所示:返回Excel中,按下Alt+F8,点击执行,如下图所示:这样,三列中的数据位置就随机调换了:注意事项:...
Excel怎么将多横转单一横列?
方法/步骤 将一个10行4列的数据转换为一列。首先选中这组数据,然后点击复制。打开粘贴板(工具栏左下侧有一个粘贴板展开按钮),可以看见刚才复制下来的数据 请点击输入图片描述 双击F1,使之处于编辑状态,然后在粘贴板的下拉菜单中单击粘贴,使数据粘贴到F1中。请点击输入图片描述 请点击输入图片描述 ...