Excel VBA:如何插入行并添加文本string

我正在试图写一个简单的Excel电子表格只有一列的macros。 基本上我有一个长列表(5000行或更多)。 它是一个编号对象ID列表,如下所示:

object_0001 object_0002 object_0003 ... object_5000 

我的目标是在每组90个对象之前添加5行文本和一行空白行。 所以它看起来像这样:

 textadded1 textadded2 textadded3 textadded4 textadded5 (blank row here) object_0001 object_0002 object_0003 object_0004 ... object_0090 textadded1 textadded2 textadded3 textadded4 textadded5 (blank row) object_0091 object_0092 ... object_0180 textadded1 textadded2 textadded3 textadded4 textadded5 (blank row) 

我想要添加的5个string都只是一个单词,并且将在90个对象的每个块之间添加相同的string。 现在我有一个macros将插入空白行,我手动进行并复制/粘贴文本中的5个单元格后,我运行它。 这是我正在使用的macros代码是这样做的:

 Sub CommandButton21_Click() Dim LastRow As Long Dim RowNdx As Long LastRow = Cells(Rows.Count, "A").End(xlUp).Row For RowNdx = 95 To LastRow Step 95 Rows(RowNdx).Insert Rows(RowNdx).Insert Rows(RowNdx).Insert Rows(RowNdx).Insert Rows(RowNdx).Insert Next RowNdx 'make sure the first FOUR lines are blank' End Sub 

请帮我修改代码来添加我想要的文本string。 这仅适用于仅使用列A的电子表格

试试这个macros:

 Sub CommandButton21_Click() Dim LastRow As Long Dim RowNdx As Long LastRow = Cells(Rows.Count, "A").End(xlUp).Row For RowNdx = 1 To LastRow Step 96 Rows(RowNdx).Insert Rows(RowNdx).Insert Cells(RowNdx, 1).Value = "textAdded5" Rows(RowNdx).Insert Cells(RowNdx, 1).Value = "textAdded4" Rows(RowNdx).Insert Cells(RowNdx, 1).Value = "textAdded3" Rows(RowNdx).Insert Cells(RowNdx, 1).Value = "textAdded2" Rows(RowNdx).Insert Cells(RowNdx, 1).Value = "textAdded1" Next RowNdx End Sub 

通常,在循环中插入或删除行时,您可以从底部开始并进行处理,以便插入/删除的行不会干扰您的迭代计数。

 Sub insert_6_every_90() Dim rw As Long, lr As Long, stp As Long stp = 90 With ActiveSheet 'set worksheet properly like With Sheets("Sheet1")! lr = Int(.Cells(Rows.Count, 1).End(xlUp).Row / stp) * stp + 1 For rw = lr To 1 Step -stp .Cells(rw, 1).Resize(6, 1).EntireRow.Insert .Cells(rw, 1).Resize(5, 1).Formula = "=text(row(1:1), ""\t\e\x\t\a\d\d\e\d0"")" .Cells(rw, 1).Resize(5, 1) = .Cells(rw, 1).Resize(5, 1).Value Next rw End With End Sub 

我不确定Textadded0,Textadded1等的真相有多接近。 这一次填充五个单元格。 如果个别案文更为适用,那么这部分可能需要调整。