将多个列行合并到一个单元格中

我有一个看起来像这样的专栏

A B C D E 

我需要把这个列变成行,每个空单元格标记新行,看起来像这样:

 ABC DE 

Excel中有这样一个简单的方法吗?

如果你在模块中复制下面的代码,它应该做你所要求的(确保你的数据表是活动表)。 没有数据有效性检查 – 它假定:

  • 带有数据的表单是活动表单,
  • A栏中有数据

并将结果输出到B列。

 Option Explicit Public Sub doIt() Dim data As Variant Dim result As Variant Dim i As Long Dim j As Long data = ActiveSheet.UsedRange ReDim result(1 To UBound(data, 1), 1 To 1) As Variant j = 1 For i = 1 To UBound(data, 1) If data(i, 1) = "" Then j = j + 1 Else result(j, 1) = result(j, 1) & data(i, 1) End If Next i With ActiveSheet .Cells(1, 2).Resize(UBound(result, 1), 1) = result End With End Sub 

我的方法是使用AREAS()方法,因为你的数据组是由空白单元格分隔的。

 Option Explicit Sub ColumnToRows() Dim RNG As Range, a As Long Set RNG = Range("A:A").SpecialCells(xlConstants) For a = 1 To RNG.Areas.Count RNG.Areas(a).Copy Range("C" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteAll, Transpose:=True Next a Application.CutCopyMode = False End Sub 

如果列A不是常量,则可以将其更改为xlFormulas