ExcelmacrosVBA – 插入单元而不是复制

我尝试过search与我的问题有关的多个问题,并尝试更改自己的代码以适应解决scheme,但是即时编程不是很好,因此没有任何解决scheme对我有帮助。

因此,这是我的问题:我已经创build了一个代码,通过button将整个行复制到另一个工作表,如果它包含一个特定的值。

不过,由于底部的值总和为总和,因此代码会自动将它们复制到总和之下,使其无效。 如果我更改范围以在总和之前复制单元格,则会出现下一个问题:行被复制并且未插入。 因此有时总和将被复制的单元覆盖。

我不想要一个工作,把总和放在顶部,我希望单元格被插入总和以上,而不是复制:

Sub Test() Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long I = Worksheets("Sheet1").UsedRange.Rows.Count J = Worksheets("Sheet2").UsedRange.Rows.Count If J = 1 Then If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0 End If Set xRg = Worksheets("Sheet1").Range("G1:G" & "999") On Error Resume Next Application.ScreenUpdating = False For Each xCell In xRg If CStr(xCell.Value) = "Test" Then xCell.EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1) xCell.EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub 

我想我已经设法缩小到下面的问题:

 xCell.EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1) 

不知何故,我需要改变它,所以它插入一个行之间的总和与前一个/最后插入的行。 因此,代码“J + 1”需要改变到总和与上一次插入的行之间的距离,在我的情况下围绕“J – 5”。 但是,这仍然不能解决我的“复制/插入”问题。

试试像这样…

 xCell.EntireRow.Copy Worksheets("Sheet2").Range("A" & J + 1).Insert shift:=xlDown 

您可以在复制值之前插入一行:

 'Inserting a Row at at Row 2 Range("A2").EntireRow.Insert