我需要在列表中的下一个值更改之前插入一条附加记录。
1 4 j
2 4 g
3 5 h
4 5 f
5 5 v
6 5 y
7 5 f
8 6 f
9 6 g
10 8 j
即第2,第7,第9行将被复制并插入下一行之前。注意工作是自下而上的。我想也许Selection.Offset(1,0)。选择
Sub InsertRowsWithNewValues()
' Note: hard coded to "Sheet1", ChkCol
Dim LastRowcheck As Long, n1 As Long, ChkCol As Long
ChkCol = 2
MsgBox ("Execute on column: " + Str(ChkCol))
With Worksheets("Sheet1")
LastRowcheck = .Range("A" & .Rows.Count).End(xlUp).Row
For n1 = LastRowcheck To 3 Step -1
MsgBox (.Cells(n1, ChkCol).Value + " " + .Cells(n1 - 1, ChkCol).Value)
If .Cells(n1, ChkCol).Value <> Cells(n1 - 1, ChkCol).Value Then
.Rows(n1).Insert
.Rows(n1 - 1).Select
Selection.Copy
Selection.Insert
' .Rows(n1).Paste
End If
Next n1
End With
End Sub
答案 0 :(得分:0)
可以在没有VBA的情况下实现,假设h
在B3中:
选择ColumnsA:B,DATA&gt;大纲 - 小计在每次更改时:4
,使用函数:计数,添加小计到:勾选j
,勾选替换当前小计,勾选下面的数据摘要,确定。
过滤列A:B,对于ColumnA选择数字过滤器,自定义过滤器...,包含,c
,确定,删除所有在Row1下方可见,过滤(全选),选择ColumnsA:B,HOME&gt ;编辑 - 查找&amp;选择,转到特殊...,选择空白,确定。
=
,向上,按Ctrl + Enter。删除过滤器,选择整张纸,DATA&gt;大纲 - 取消组合,清除大纲。删除底部的任何盈余。