根据单元格值插入X行,并设置新行格式



我在Excel 2010中有一个数据表,从第10行开始,每一行都在I列中包含一个计算的数字(X)。当(X)大于1时,代码旨在在表中的任何行下面插入(X)个新行。

当前的代码实现了这一点,但当表中有新的条目并且我再次运行代码时,在已经插入的额外行下面会添加更多的空白行。

我还想将列A:G中的信息从包含(X)的行复制到每个新插入的行,并使原始行显示为粗体文本。

Sub Insert_SB()
Dim lngCounter As Long
For lngCounter = Range("I" & Rows.count).End(xlUp).row To 10 Step -1

    With Cells(lngCounter, "I")
    If IsNumeric(.Value) And .Value > 1 Then
    With .Offset(1, 0).Resize(.Value - 1, 1)
    .EntireRow.Insert
    End With
    If IsNumeric(.Value) And .Value = 0 Then Exit For
End If
End With
Next lngCounter
End Sub

例如,您的代码将在单元格I11中的数字5下面插入5个空白行。当您再次运行代码时,它将再次找到数字5并插入另外5行。。。。你需要告诉它它不需要。也就是说,你需要首先计算数字5下面的空白行,看看是否已经有5,或者你需要将5标记为"完成"(可能通过写入K列)

这个函数可能会告诉你是否需要添加行:

Function NeedsMoreRows(rngToCheck As Range) As Boolean
Dim intNumBlankRows As Integer
Dim intCounter As Integer
    'this is the number of blank rows it should have underneath it
    intNumBlankRows = rngToCheck.Value
    For intCounter = 1 To intNumBlankRows
        If ActiveSheet.Cells(rngToCheck.Row + intCounter, rngToCheck.Column) <> vbNullString Then NeedsMoreRows = True

    Next intCounter

End Function

如果IsNumeric(.Value)And.Value>1并且需要更多行(单元格(lngCounter,"A")),则

最新更新