在每个小计处,for then 循环复制并粘贴上面的数据 vba

At each subtotal, for then loop copy and paste above data vba

我正在尝试使用 for then 循环复制每个小计并粘贴到每个数据集上方。也许这里有一个更合适的循环,我不是 100% 确定。在满足条件后,我无法让循​​环复制小计。请参阅下面的代码:

For I = 1000 To 2 Step -1 ' adjust 1000 to the row number of the last element
If Cells(I, 7).Font.Bold Then
    Cells(I + 1, 1).Copy
    Selection.End(xlUp).Select
    Selection.Offset(1, -7).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End If
Next

我无法让宏执行的操作是复制实际的小计,它甚至不复制选中的单元格。如果您需要查看我正在尝试让循环执行的操作,请参见下图。

Cells(I + 1, 1).Copy 正在正确复制单元格内容,但实际上并未选择单元格。然后您尝试通过从所选单元格开始移动选择来设置目的地,但 selection 的起点实际上并没有首先由循环设置。

更改它的一种方法是在粘贴之前不使用 .select。这也更有效,因为 .select 非常低效,应该最小化。

For I = 1000 To 2 Step -1 ' adjust 1000 to the row number of the last element
If Cells(I, 7).Font.Bold Then
    Cells(I + 1, 7).Copy
    Cells(I + 1, 7).End(xlUp).Offset(1, -6).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End If
Next