我在excel中有一行数据。数据大约是5000多个值。
我想将这一行拆分成多行。下面是相同的例子。
我的单行包含如下数据:1 2 3 4 5 A 1 2 4 5 9 5 9 A 2 1 4 A等......
我想要在每个" A"之后拆分这一行。达到的价值。输出如下。
1 2 3 4 5
A 1 2 4 5 9 5 9
A 2 1 4
等等......
some1可以帮我解决这个问题吗?宏对我很好。此外,我还拥有5000+值等大量数据。
答案 0 :(得分:1)
这应该可以胜任你的工作。考虑到您的数据在Sheet1中并且输出是在工作表Sheet2中生成的。
Sub pSplitData()
Dim rngColLoop As Range
Dim rngSheet1 As Range
Dim wksSheet2 As Worksheet
Dim intColCounter As Integer
Dim intRowCounter As Integer
'Consider the data to be in First row of Sheet1
With Worksheets("Sheet1")
Set rngSheet1 = .Range(.Range("A1"), .Range("A1").End(xlToRight))
End With
Set wksSheet2 = Worksheets("Sheet2")
intRowCounter = 1
intColCounter = 0
'Clear previous output
wksSheet2.Range("A1").CurrentRegion.Clear
'Loop through and create output in Sheet2
With rngSheet1
For Each rngColLoop In .Columns
If Trim(rngColLoop) <> "" Then
If UCase(Trim(rngColLoop)) <> "A" Then
intColCounter = intColCounter + 1
wksSheet2.Cells(intRowCounter, intColCounter) = rngColLoop
ElseIf UCase(Trim(rngColLoop)) = "A" Then
intRowCounter = intRowCounter + 1
intColCounter = 1
wksSheet2.Cells(intRowCounter, intColCounter) = rngColLoop
End If
End If
Next rngColLoop
End With
Set rngColLoop = Nothing
Set rngSheet1 = Nothing
Set wksSheet2 = Nothing
End Sub
答案 1 :(得分:0)
尝试使用Text to Columns
并使用A
作为分隔符。您必须将A
添加回结果单元格。
答案 2 :(得分:0)
如果您的数据位于单个单元格中,例如,单元格A1
,那么您可以使用vba的拆分将所有单个部分存储在数组中,并使用字母A
进行拆分。
myArray = Split(Cells(1, 1), "A")
在您的示例中,myArray(0) = 1 2 3 4 5
,myArray(1) = 1 2 4 9 5
等
因此,如果每个元素都需要在自己的行中,那么可以将A
连接到前面,就像这样
cells(2, 1) = "A" & myArray(0)
cells(3, 1) = "A" & myArray(1)
等等。
答案 3 :(得分:0)
如果您的数据是这样的:
A || B || C || D ||
-----------------------------------------
1 || one || two || three || four ||
2 ||
然后将=TRANSPOSE(A1:D1)
放入A2,并使用Ctrl
+ shift
+ enter
进行确认,这将产生如下公式:{=TRANSPOSE(A1:D1)}
,结果如下:
A || B || C || D ||
-----------------------------------------
1 || one || two || three || four ||
2 || one
3 || two
4 || three
5 || four
或者您正在进行一次性操作后,您可以随时:选择 - &gt;复制选择空单元格 - &gt;粘贴特殊 - &gt;勾选转置