【发布时间】:2018-06-05 13:22:13
【问题描述】:
我有两列有分隔符。两列将具有相同数量的分隔符。例如,A 列中的 a;b;c 和 B 列中的 d;e;f。在某些列中,可能没有任何合适的列。
我希望能够将这些列拆分为确切的行数,并从其他列复制数据。因此,上面的示例总共有 3 行,结果如下:
Col A Col B
a d
b e
c f
我找到了下面我修改并适用于指定列的代码,但如果可能,我想将其应用于多个列。
Option Explicit
Sub splitcells()
Dim InxSplit As Long
Dim SplitCell() As String
Dim RowCrnt As Long
With Worksheets("Sheet1")
RowCrnt = 1
Do While True
If .Cells(RowCrnt, "L").Value = "" Then
Exit Do
End If
SplitCell = Split(.Cells(RowCrnt, "L").Value, "*")
If UBound(SplitCell) > 0 Then
.Cells(RowCrnt, "L").Value = SplitCell(0)
For InxSplit = 1 To UBound(SplitCell)
RowCrnt = RowCrnt + 1
.Rows(RowCrnt).EntireRow.Insert
.Cells(RowCrnt, "L").Value = SplitCell(InxSplit)
.Cells(RowCrnt, "A").Value = .Cells(RowCrnt - 1, "A").Value
.Cells(RowCrnt, "B").Value = .Cells(RowCrnt - 1, "B").Value
.Cells(RowCrnt, "C").Value = .Cells(RowCrnt - 1, "C").Value
.Cells(RowCrnt, "D").Value = .Cells(RowCrnt - 1, "D").Value
.Cells(RowCrnt, "E").Value = .Cells(RowCrnt - 1, "E").Value
.Cells(RowCrnt, "F").Value = .Cells(RowCrnt - 1, "F").Value
.Cells(RowCrnt, "G").Value = .Cells(RowCrnt - 1, "G").Value
.Cells(RowCrnt, "H").Value = .Cells(RowCrnt - 1, "H").Value
.Cells(RowCrnt, "I").Value = .Cells(RowCrnt - 1, "I").Value
.Cells(RowCrnt, "J").Value = .Cells(RowCrnt - 1, "J").Value
.Cells(RowCrnt, "K").Value = .Cells(RowCrnt - 1, "K").Value
Next
End If
RowCrnt = RowCrnt + 1
Loop
End With
End Sub
这可能吗?非常感谢任何帮助。
【问题讨论】:
-
更新为遗漏的分隔符
-
@"Hetal Patel" 请编辑您的帖子而不是对其发表评论。谢谢
-
抱歉 Rawrplus,我是新来这里发帖的,直到发帖后才能看到编辑按钮
-
在您的代码中,您正在拆分 L 列中的数据,但您的帖子提到您需要将其拆分为两列并给出 A 和 B 的示例。实际的另一列是什么?跨度>
标签: vba excel split multiple-columns