如何在一列中取出多个值来创build具有这些值的新行(重复来自原始行的所有其他信息)?

我有一个Excel电子表格12列和200 +行。 在其中一列(ColB)中,有多个值与单行关联。 我想在B列中将这些logging转换为单个值的多行。换句话说,我想将其转换为:


[ColA] [ColB] [ColC]

[蓝色] [1,4,7] [打开]
[红色] [2,3] [closures]
[绿色] [5] [打开]


对此:


[ColA] [ColB] [ColC]

[蓝色] [1] [打开]
[蓝色] [4] [打开]
[蓝色] [7] [打开]
[红色] [2] [closures]
[红色] [3] [closures]
[绿色] [5] [打开]


有什么build议么? 谢谢!

我最喜欢在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