选中部分数据区域(多行多列),例如:

转换之后:

vba代码:
Sub manyToOne()
Dim TheRng, TempArr
Dim i As Integer, j As Integer, elemCount As Long
On Error GoTo line1
Sheets("Sheet2").Range("a:a").ClearContents
If Selection.Cells.Count = 1 Then
Sheets("Sheet2").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, 2)
For j = 1 To UBound(TheRng, 1)
TempArr((i - 1) * UBound(TheRng, 1) + j, 1) = TheRng(j, i)
Next
Next
Sheets("Sheet2").Range("a1:a" & elemCount) = TempArr
End If
line1:
End Sub

使用VBA可以方便地将Excel中的多行多列数据转换为多行一列的形式。通过选定特定数据区域,运行VBA代码,能够高效整理表格数据,提高工作效率。

1万+

被折叠的 条评论
为什么被折叠?



