【发布时间】:2019-10-04 02:45:42
【问题描述】:
我正在尝试将单列转换为多行。换行符应基于包含“联系买家”的单元格后面的行。以下是数据示例:
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
下面的输出示例取自输入数据的前两个条目,我添加了一个附加项目,其中审阅者添加了一张照片,这导致审阅长度为七个单元格而不是五个:
【问题讨论】:
-
你能张贴数据截图吗?你的例子真的没有帮助吗?
-
@Greg 为什么是
stepVal = "?这被声明为Long,这意味着您只能为其分配数字。 -
您需要发布更好的输入数据示例和所需输出。
-
您的第二张图片与您的口头流程描述不匹配(用于输出 = 确定下一行),因为在第二行中的联系买家之后有不止一列(水晶....)
-
@QHarr 你是对的。抱歉,这是我的错误,请忽略“F”行中的输入,我正在清理那些。在“联系买家”之后,他们都只有一个单元格的有用数据