我有很多数据用exma表格中的逗号分隔,需要转换成行。 数据如下所示:[' C $',' ADMIN $',' WSTemp','磁盘#0,分区#0 ']
有14000个单元格(以逗号分隔的数据)要转换为行。我正在使用Data->文本到列功能,然后反转/转置数据。但比这还快吗? 感谢
答案 0 :(得分:0)
为了做到这一点,你不一定需要VBA。如果转到Excel中的“数据”选项卡并转到“数据工具”部分,则会有一个名为text to columns的选项。单击它,您可以告诉函数您要分割每行文本。在这种情况下,它将是“,”。这是Microsoft 2013特有的。我知道这个功能存在于2010年,尽管它可能不会被称为文本到列。祝你好运!
答案 1 :(得分:0)
这适用于VBA。
首先循环遍历源数据。
使用Split,在单元格中构建项目数组,然后使用UBound获取数组中的项目数量。 删除任何其他引号,以便您以后不必。
<强>试验:强>
这是修订后的答案:V4
Sub CellSplitToRows()
Dim lastRow As Long
Dim tempVals() As String
Dim valCount As Integer
Dim i As Long
Dim newLast As Long
Dim lastSourceRow As Long
lastSourceRow = Sheets("Sheet1").Cells(Rows.Count, "AW").End(xlUp).row
For r = 2 To lastSourceRow
For lCol = 49 To 55 'Columns AW to BC
tempVals() = Split(Sheets("Sheet1").Cells(r, lCol).Text, ",")
valCount = UBound(tempVals) + 1 '+1 for Array index 0
i = 0
lastRow = Sheets("Sheet1").Cells(Rows.Count, "BE").End(xlUp).row
newLast = lastRow + valCount
For lRow = (lastRow + 1) To newLast
Sheets("Sheet1").Cells(lRow, "BE") = Replace(tempVals(i), "'", "") 'Remove Single Quotes
i = i + 1
Next lRow
Next lCol
Next r
End Sub