VBA创build每个新节的标题

我自己有一些麻烦,我认为这是一个不知道一大堆VBA的组合,也许不会向Google询问正确的关键字。 我有一些数据被分解成各部分重复的标题。 我还想做的是在复制的另一个上方创build另一个听众,这个复合的文本是来自新章节的文本和各种单元格的组合。 每个新的标题将依赖于它自己的部分内的数据。 如果我要为第一个新创build的部分使用连接公式,那将是:

=CONCATENATE("Contract# ",J3," -- SiteID# ",L3) 

下面是我在特定列中每次更改后插入空行的代码。 它也复制每个新节的原始标题。 我想我可以结合我正在寻找的代码与我有什么。 除非循环遍历每个部分,并在每个部分的上方插入新行,否则会更容易?

 lr = Range("A" & Rows.Count).End(xlUp).Row For i = lr To 3 Step -1 If Cells(i - 1, "J").Value <> Cells(i, "J").Value Then Cells(i, "J").Resize(2).EntireRow.Insert Rows(1).Copy Destination:=Rows(i + 2) End If Next i 

抱歉。 我知道我忘记了一些东西。 以下是数据的截图。 请记住,唯一不变的是有多less列将包含数据。 每个部分中有多less个部分以及多less行将会每天都有所不同。

在这里输入图像说明

按照要求,这是一个我想要的样子的小样本。

在这里输入图像说明

我不认为循环每一部分会更容易 – 我认为你在正确的轨道上。

这可能不是你想要的,但希望它会给你一个想法:

 For i = lr To 3 Step -1 If Cells(i - 1, "J").Value <> Cells(i, "J").Value And Cells(i, "J").Value <> "" Then Cells(i, "J").Resize(2).EntireRow.Insert Rows(1).Copy Destination:=Rows(i + 1) Range("A" & i).Value2 = "Contract# " & Range("J" & i + 2).Value2 & _ " -- SiteID# " & Range("L" & i + 2).Value2 End If Next i 

这假定您想要的字段位于列A中的标题行中,位于复制的标题行上方。

– 编辑11/22/2016 –

根据OP的想要保留两条空行的反馈,这应该做到这一点。

 For i = lr To 3 Step -1 If Cells(i - 1, "J").Value <> Cells(i, "J").Value And Cells(i, "J").Value <> "" Then Cells(i, "J").Resize(4).EntireRow.Insert Rows(1).Copy Destination:=Rows(i + 3) Range("A" & i + 2).Value2 = "Contract# " & Range("J" & i + 4).Value2 & _ " -- SiteID# " & Range("L" & i + 4).Value2 End If Next i 

小编辑可能是为了满足特定的需求,但希望这是90%。