Excel:基于一致的单元格值将一列中的堆叠数据转换为多行

时间:2019-05-16 19:01:45

标签: excel vba

我正在尝试将一列转置为多行。行分隔符应基于包含“联系买方”的单元格之后的行。下面是数据示例:

jeneice07,2019年5月13日

5星(5星)

报告此评论

联系买家

生命之树石项链丝包裹水晶吊坠石女士珠宝首饰大自然为她的绿宝石铜树设计送礼

每个评论中的行数是可变的,否则这将是一个简单的问题。我需要代码来查找“联系买方”,然后再添加一个单元格并进行转置,然后再将下一个评论转置另一行。我可以将包含联系人买方的单元格更改为使其比字符串更容易使用的任何值。

我在寻找解决此问题的任何方法。我有超过100000行数据,因此手动执行此操作不是一种选择。我尝试修改下面的代码,但由于我无法使stepVal可变,因此无法正常工作。

Public Sub TransposePaste()
   'Value we want to step by....
    Dim stepVal As Long
    stepVal = "
'Declare start row variable (-1)
 Dim row As Long
 row = 0

'Declare the column the data is coming from
Dim col As Long
col = 1

'Declare and set worksheet
Dim ws As Worksheet
Set ws = Sheet1

'end row of the data
Dim endRow As Long 
endRow = ws.Cells(ws.Rows.Count, col).End(xlUp).row

'cycle to end of data end of data...
For i = 1 To endRow Step stepVal

'increment row each time
row = row + 1

    'cycle through the columns outputting the data
    For j = 1 To stepVal

    Sheet1.Cells(row, j).Value = Sheet1.Cells(i + j - 1, col).Value

    Next j
Next i
End Sub

Input data looks like this. It is 10K rows of user comments

下面的输出示例取自输入数据的前两个条目,我添加了一个附加项目,其中审阅者添加了一张照片,导致审阅时间由七个单元格而不是五个单元格组成:

Output Example

1 个答案:

答案 0 :(得分:0)

无视。我只是要手动清理数据以使长度保持一致的5行,然后使用上面的代码。