多行和多列到单列Excel

我有不同的数据在Excel中的多个行和列,我希望所有的数据在一个单一的列。 我尝试了转置function,但它并没有帮助我得到我想要的。

这就是我现在所拥有的:

在这里输入图像说明

这就是我想要得到的:

在这里输入图像说明

任何人都可以告诉我,我怎么能做到这一点? 任何内置函数或macros将是有帮助的。 谢谢。

试试这个代码:

Sub RangetoColumn() Dim LastRow As Long, LastColumn As Long Dim CurrentSheet As Worksheet, TargetSheet As Worksheet Dim i As Long, j As Long, Count As Long Set CurrentSheet = ThisWorkbook.Worksheets("Sheet1")'-->change Sheet1 to your source sheet Set TargetSheet = ThisWorkbook.Worksheets("Sheet2")'-->change Sheet2 to your target sheet LastRow = CurrentSheet.Cells(Rows.Count, "A").End(xlUp).Row Count = 1 For i = 1 To LastRow LastColumn = CurrentSheet.Cells(i, Columns.Count).End(xlToLeft).Column For j = 1 To LastColumn TargetSheet.Range("A" & Count).Value = CurrentSheet.Cells(i, j).Value Count = Count + 1 Next j Next i End Sub 

代码将从Sheet1读取范围,并将在Sheet2创build一个Column。

我认为这个教程应该可以帮助你: 教程你可以根据你的需要来尝试这个解决scheme。

尝试在两个单元格中使用& 。 尝试像这样A1&B1来合并单元格A1和单元格B1的数据; 复制和粘贴,然后享受。

这将使所有当前图纸单元格列在列A中,并清除所有其他相邻的列

 Option Explicit Sub RangeToOneColumn() Dim lastRow As Long, i As Long, j As Long Dim rng As Range Dim myArr As Variant With ThisWorkbook.Worksheets("Sheet1") '<== change it to your needs lastRow = .Cells(.rows.Count, "A").End(xlUp).Row ReDim myArr(0 To lastRow - 1) For i = 1 To lastRow Set rng = .Range(.Cells(i, 1), .Cells(i, .Columns.Count).End(xlToLeft)) myArr(i - 1) = Application.Transpose(Application.Transpose(rng)) Next i .Cells(1, 1).CurrentRegion.ClearContents j = 1 For i = LBound(myArr) To UBound(myArr) .Cells(j, 1).Resize(UBound(myArr(i))) = Application.Transpose(myArr(i)) j = j + UBound(myArr(i)) Next i End With End Sub 

因为它使用数组,所以它的运行速度比迭代通过单元格的应对和粘贴要快