我正在努力将excel组合成一系列未系统格式化的文本字符串,以便它们最终分成数据表中的不同行。
我知道这可能已经在其他地方得到了解决,但很抱歉,但是我很难描述这个问题,而且我无法在其上发布图像,但基本上它是
是否可以编写某种能够检查第一列的公式或宏,然后将第二列中的所有条目拼接在一起,直到它在第一列中找到新条目为止?我有一种感觉,可能有可能使用索引函数的某种循环事物,但我不知道从哪里开始。
谢谢, 麦克
答案 0 :(得分:0)
迈克给了这个帖子
Sub appendValues()
&#39; sub设计用于循环遍历代码,当有空值和列a时,它将获取B列中的值并附加到其上方的行并删除该行。< / p>
Dim row As Integer
row = 1
&#39;此代码从第一行开始,但可以随意更改。
Do Until ThisWorkbook.Sheets(&#34; sheet1&#34;)。Cells(row,2).Value =&#34;&#34;
&#39;循环语句旨在继续循环,直到你内部的空值为第二列中的值。
如果ThisWorkbook.Sheets(&#34; sheet1&#34;)。Cells(row,1).Value =&#34;&#34;然后
ThisWorkbook.Sheets(&#34; sheet1&#34;)。Cells(row-1,2).Value = ThisWorkbook.Sheets(&#34; sheet1&#34;)。Cells(row-1,2) .Value&amp; ThisWorkbook.Sheets(&#34; sheet1&#34;)。Cells(row,2).Value
行(行).Delete
否则
&#39; else语句是必需的,因为通过减少删除后的总行数存在隐含的循环。
row = row + 1
结束如果
循环
End Sub
Sub appendValues()
'The sub is designed to loop through code and when ever there is a null value and column a it will take the value of what is in column B and appended to the row above it and delete the row.
Dim row As Integer
row = 1
'This code starts with row one but this can be changed at will.
Do Until ThisWorkbook.Sheets("sheet1").Cells(row, 2).Value = ""
'loop statement is designed to continue to Loop until there is a null value inside of you the value in the second column.
If ThisWorkbook.Sheets("sheet1").Cells(row, 1).Value = "" Then
ThisWorkbook.Sheets("sheet1").Cells(row - 1, 2).Value = ThisWorkbook.Sheets("sheet1").Cells(row - 1, 2).Value & ThisWorkbook.Sheets("sheet1").Cells(row, 2).Value
Rows(row).Delete
Else
'else statement is needed because there is an implied looping by decreasing the total number of rows after the delete.
row = row + 1
End If
Loop
End Sub