我有一个包含 12 多列和 200 多行的 Excel 电子表格。在其中一列 (ColB) 中,有多个值与单行关联。我想将此类记录转换为 B 列中具有单个值的多行。换句话说,我想将其转换为:
[ColA] [ColB] [ColC]
[蓝色] [1, 4, 7] [打开]
[红色] [2, 3]
[绿色] [5] [开放]
对此:
[ColA] [ColB] [ColC]
[蓝色] [1] [开放]
[蓝色] [4] [开放]
[蓝色] [7] [开放]
[红色] [2]
[红色] [3]
[绿色] [5] [开放]
有什么建议么?谢谢!
最佳答案
我最喜欢在 Excel 中处理数据的方法是使用 Range 对象表示一行数据(我称之为“光标”)。您可以使用 Offset 方法将光标向下移动一行,然后循环直到光标中的特定单元格为空。有很多方法可以识别 Excel 工作表中的“最后一行”,但它们都有缺点 - 我只是更喜欢识别数据中不应为空的列,并在到达空白单元格时终止循环。
Dim cursor As Range
Dim x As Variant
Dim i As Long
Set cursor = Range("A2:C2")
Do Until IsEmpty(cursor(1))
x = Split(cursor(2), ",")
If UBound(x) > 0 Then
cursor(2) = x(0)
For i = 1 To UBound(x)
cursor.EntireRow.Insert
With cursor.Offset(-1)
cursor.Copy .Cells(1)
.Cells(2) = x(i)
End With
Next
End If
Set cursor = cursor.Offset(1)
Loop
关于excel - 如何在一列中提取多个值以使用这些值创建新行(重复原始行中的所有其他信息)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21890970/