我有一个看起来像这样的列
A
B
C
D
E
我需要将此列转换为行,每个空单元格标记新行,如下所示:
ABC
DE
在Excel中有一种简单的方法吗?
答案 0 :(得分:1)
如果您在模块中复制下面的代码,它应该按照您的要求执行(确保包含您的数据的工作表是活动工作表)。没有数据有效性检查 - 它假定:
并将结果输出到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
答案 1 :(得分:1)
我的方法是使用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 。