通过单元格值在表格下插入x行

时间:2017-10-18 22:58:25

标签: excel excel-vba vba

我在发布之前已经进行了研究,并设法将一些代码拼凑在一起,但由于某种原因,它无法正常工作。

如果要将其值更改为大于1的值,我想在Excel中的单元格下添加X行数。

例如,我有一个这样的表:

        Col1            Col2        Col3    Split
   R1  something1      thing2      thing3      2
   R2  something2      thing3      thing4   
   R3  something3      thing4      thing5   

如果我在col4中有一个大于1的值,比如R1中的2为something1,那么我的代码会在R1下面的表中插入一行,但它会复制R1中的值,最后会有两个东西1 (因为有两个分裂)。所以,它将以这样的结束:

        Col1            Col2        Col3    Split
   R1  something1      thing2     thing3     2
   R2  something1      thing2     thing3     2
   R4  something2      thing3     thing4    
   R5  something3      thing4     thing5    

现在,我有这段代码:

Private Sub Worksheet_Change(ByVal Target As range)
    Dim KeyCells As range
    Dim tbl As ListObject
    Dim tRows As Long
    Dim tCols As Long
    Dim miss As Integer

    Set tbl = ActiveSheet.ListObjects("TableQueryLawson")
    With tbl.DataBodyRange
        tRows = .Rows.Count
        tCols = .Columns.Count
    End With

    col = ColumnNumberByHeader("Splits")

    If col <> 0 Then
        Set KeyCells = range(Cells(5, col), Cells(tRows, col))
    Else
        Cancel = True
        MsgBox "Check that column COMMENTS exist"
        Exit Sub
    End If


    If Not Application.Intersect(KeyCells, range(Target.Address)) Is Nothing Then

        If Target.Value > 1 Then
            MsgBox "Cell " & Target.Address & " has changed."
        End If

            Set newRow = tbl.ListRows.Add()

    End With
    End If
End Sub

但是,我被困在添加新行并填写下面行中的数据的部分。如果用户在Split列中指定,我还需要它才能添加到10行。

这是一个超过10k行和超过40列的表。

我正在使用Excel 2013。

0 个答案:

没有答案