-1

在工作中,我经常需要将大量信息从一张纸复制到另一张纸上(Excel 2007)。问题是我想将 sheet1 上包含带有换行符的换行文本的行复制到 sheet2 上的多个单元格,如下例所示。

Sheet1 看起来像这样(但有 50-200 行):

Row    A          B          C       D       E      F....
1      PN         Name       Task

2      1-234      Text1      Text2
                             is word-
                             wrapped

3      2-345      Text3      Text4
                             Text5

我想编写一个宏来帮助我将此信息复制到 sheet2 以便我为每个换行符获得一个新行。Sheet2 应如下所示:

Row    A          B          C        D       E      F....

1      PN         Name       Task

2      1-234      Text1      Text2

3      1-234      Text1      is word-

4      1-234      Text1      wrapped

5      2-345      Text3      Text4

6      2-345      Text3      Text5

换句话说,我想为 C 列中的每个任务创建一个新行

谁能给我一些指示。我经常不得不在深夜这样做,直到我复制所有行才能睡觉。

谢谢!

4

1 回答 1

0

我以后可以提供更好的帮助,但现在,只是提示:

将 Range 变量设置为 C 列:

Dim DataColumn as Range

Set DataColumn = Sheet1.Range("C:C")

将 arow index = i从 1 设置到末尾(直到 A 列为空)。增加这个i每个内部循环,如下所示。

做一个while loop,因为你的结束线会有所不同(你将插入线)

在循环内部,获取DataColumn.Rows(i).Value. 将其作为字符串存储在变量中

做一个内部循环来查找值中的所有换行符:在那个值中搜索第一个换行符(我相信它Chr(10))(我相信它是InStr(text)vba方法)如果没有找到,结束这个内部循环

如果找到 获取Left(text)第一个换行符之前的部分文本。替换该左侧部分的行值。(第一次不添加行)从存储的值中删除该部分(使用Right(text))。下一次循环迭代,再次搜索换行符。这一次,您将i在行索引处添加行。( DataColumn.Rows(i).EntireRow.Insert)

复制上一行的所有数据并放入新的行中,使用 C 列文本的左侧部分。

重复直到没有找到换行符,然后继续。

于 2013-05-13T15:07:12.030 回答