将多个列行合并到一个单元格中
我有一个看起来像这样的专栏
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 。