我在发布之前已经进行了研究,并设法将一些代码拼凑在一起,但由于某种原因,它无法正常工作。
如果要将其值更改为大于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。