macros复制数据并迭代一系列logging

我有一个需要重新组织的logging清单。 它们的格式如下。 ID是与以下5行对应的数字。 我需要这个数字存在于每一行旁边的列A和他们对应的ID号码。我需要ID号存在列A,就像在第二个图像中看到的一样。 这需要在macros中使用VBA来完成,因为有超过100条logging。

有人能指出我正确的方向吗? 我不确定引用ID字段的最佳方式,而不是像下面的代码一样1 …

阶段1

最后阶段

Range("A2").Select Selection.AutoFill Destination:=Range("A2:A5"), Type:=xlFillDefault Range("A2:A5").Select Range("A7").Select ActiveCell.FormulaR1C1 = "=R6C[2]" Range("A7").Select Selection.AutoFill Destination:=Range("A7:A10"), Type:=xlFillDefault Range("A7:A10").Select Range("A12").Select ActiveCell.FormulaR1C1 = "=R11C[2]" 

假设:您的数据组将出现在列“B”中,从第1行开始,并且在名为“Sheet1”的工作表中包含4个附加logging

 Public Sub AutoFillRecordGroup() Dim irecordgroup as Integer Dim xlrange as Excel.Range Dim varcell as Variant Set xlrange = ThisWorkbook.Sheets("Sheet1").Range("B1" & ThisWorkbook.Sheets("Sheet1").Range("B1048576").End(xlup).Address) irecordgroup = 1 For Each varcell in xlrange If varcell.value = "ID" Then varcell(1,-1).value = irecordgroup varcell(2,-1).value = irecordgroup varcell(3,-1).value = irecordgroup varcell(4,-1).value = irecordgroup irecordgroup = irecordgroup + 1 End If Next varcell End Sub 

要么

 Public Sub AutoFillRecordGroup() Dim irecordgroup as Integer Dim xlrange as Excel.Range Dim varcell as Variant Set xlrange = ThisWorkbook.Sheets("Sheet1").Range("B1" & ThisWorkbook.Sheets("Sheet1").Range("B1048576").End(xlup).Address) irecordgroup = 1 For Each varcell in xlrange If varcell.value = "ID" Then varcell(1,-1).value = varcell(0,1).value varcell(2,-1).value = varcell(0,1).value varcell(3,-1).value = varcell(0,1).value varcell(4,-1).value = varcell(0,1).value irecordgroup = irecordgroup + 1 End If Next varcell End Sub