使用列表excel插入行

我正在尝试编写代码,使我能够在Excel中基于列表插入X行。 我可以找出通过代码插入X行,但不能包围我的头按照列表如何工作。 详细说明我有一列A具有一些独特的价值观,直到100行,我有另一个列表,说这些独特的价值有多less行需要插入。 现在我需要一个代码,它通过列表中插入行,并在表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中的帮助列与=IFERROR([index/match function],0)会更好,或者您可以忽略On Error Resume Next