将列更改为具有特定Id的行

时间:2016-05-17 07:53:49

标签: excel excel-vba excel-formula vba

您好我想知道我是否可以以某种方式从列中获取单个文本字并使它们成为一行中的单个单元格。这很难描述,但希望我能提供截图。 enter image description here

因此应该删除“内容”一词,之后的所有内容都应该在他们自己的单元格中,并且在单元格旁边标记了id。一列中的wordcount可以从1到100不等。与ID计数相同。

提前致谢!

1 个答案:

答案 0 :(得分:0)

以下代码应达到您的目标:

Private Sub SortAndSplit()
Dim docId, docContent, lastRow, docArray, myLoop, myArrayLoop, lastRowList
Dim wSheet: Set wSheet = ThisWorkbook.Worksheets("Sheet1")

lastRow = wSheet.Cells(wSheet.Rows.Count, 2).End(xlUp).Row ' Get last row in column 2 (B)

For myLoop = 2 To lastRow
    docId = wSheet.Range("A" & myLoop).Value
    docContent = wSheet.Range("B" & myLoop).Value
    docArray = Split(Trim(Replace(docContent, "Contents ", "")), ",")
    For myArrayLoop = 0 To UBound(docArray)
        lastRowList = wSheet.Cells(wSheet.Rows.Count, 4).End(xlUp).Row + 1 ' Get last row in column 4 (D) and add 1
        wSheet.Range("D" & lastRowList).Value = docId
        wSheet.Range("E" & lastRowList).Value = docArray(myArrayLoop)
    Next
Next  
End Sub