使用列表excel插入行

使用列表excel插入行,excel,vba,Excel,Vba,我正在尝试编写代码,使我能够根据列表在excel中插入X行。我可以通过代码计算出插入X行的数目,但无法根据列表来理解如何操作。为了详细说明,我有一个表1,其中a列有一些直到100行的唯一值,我还有另一个列表,其中说明了在这些唯一值中需要插入多少行。现在我需要一个代码,它可以在列表中运行,并在第1页中插入行。到目前为止,我已经提出了以下代码 Sub test() Application.Calculation = xlCalculationManual Application.ScreenU

我正在尝试编写代码,使我能够根据列表在excel中插入X行。我可以通过代码计算出插入X行的数目,但无法根据列表来理解如何操作。为了详细说明,我有一个表1,其中a列有一些直到100行的唯一值,我还有另一个列表,其中说明了在这些唯一值中需要插入多少行。现在我需要一个代码,它可以在列表中运行,并在第1页中插入行。到目前为止,我已经提出了以下代码

  Sub test()
Application.Calculation = xlCalculationManual

Application.ScreenUpdating = False

Application.DisplayStatusBar = False

Dim k As Long, t As Range
k = InputBox("No. rows to be inserted")
Set t = Range("A2")
Do
Range(t.Offset(1, 0), t.Offset(k, 0)).EntireRow.Insert
Set t = Cells(t.Row + k + 1, 1)
If t.Offset(1, 0) = "" Then Exit Do
Loop
Application.Calculation = xlCalculationAutomatic

Application.ScreenUpdating = True

Application.DisplayStatusBar = True

End Sub

然而,对于我的用法来说,这是一个非常严格的代码。如何根据列表进行操作。

您可以在唯一值列表上使用索引/匹配来获取要插入的行数。下面将获得为k插入的行数

...
Dim k As Long, t As Range
Dim ws As Worksheet
Do
     Set ws = Worksheets("Sheet2")
     k = WorksheetFunction.Index(ws.Range("B:B"), WorksheetFunction.Match(t.Value, ws.Range("A:A"), 0))
...
注意:其中Sheet2是唯一值列表,其中有#行要插入。范围A:A是唯一值,范围B:B是行数


这个问题是索引。。。如果查找列表中没有匹配项,则会出现VBA错误。在Sheet1中的helper列使用
=IFERROR([index/match function],0)
会更好,或者您可以在错误恢复下用
忽略错误

请添加“列表”以及“之前”和“之后”场景的示例。谢谢,我已经知道如何执行此操作。然而,在修改代码后,我无法达到预期的结果。第1页具有插入行的唯一性,第2页具有插入行数相同的唯一性。