用于选择活动单元格Excel VBA的单独自动求和偏移量或单个范围

用于选择活动单元格Excel VBA的单独自动求和偏移量或单个范围,excel,vba,offset,Excel,Vba,Offset,我可能已经破坏了这个标题,但我正试图做的是自动求和(通过下面的宏),仅基于下面偏移量的某些列 因此,当它找到“CCOIL”、“COIL”或“DCOIL”时,它会移动4列,求和,然后移动6列,求和(最终总共10列) 但是,在下面的示例中,使用“RANGE”会为4到10之间的每一列添加小计,但是我只希望某些列具有小计。那么,有没有一种方法可以选择具有多个偏移的多个单元格 大概是 ((Cell.Offset(0, 4)), (Cell.Offset(0, 6)), Cell.Offset(0,8)),

我可能已经破坏了这个标题,但我正试图做的是自动求和(通过下面的宏),仅基于下面偏移量的某些列

因此,当它找到“CCOIL”、“COIL”或“DCOIL”时,它会移动4列,求和,然后移动6列,求和(最终总共10列)

但是,在下面的示例中,使用“RANGE”会为4到10之间的每一列添加小计,但是我只希望某些列具有小计。那么,有没有一种方法可以选择具有多个偏移的多个单元格

大概是

((Cell.Offset(0, 4)), (Cell.Offset(0, 6)), Cell.Offset(0,8)), Cell.Offset(0,10))).Activate
我的代码如下:

For Each Cell In Range("E2:E" & findLastRow(.Range("A2")))
    If Cell.Value = "CCOIL" Or Cell.Value = "COIL" Or Cell.Value = "DCOIL" Then
        Range((Cell.Offset(0, 4)), (Cell.Offset(0, 10))).Activate
        ActiveCell.Formula = _
            "=SUM(" & Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(-1, 0).End(xlUp)).Address & ")"
    End If
Next Cell
示例数据集

也许:

Dim rngX As Range, rngY As Range

For Each cell In Range("E2:E1000") 'example of range
    If cell.Value = "CCOIL" Or cell.Value = "COIL" Or cell.Value = "DCOIL" Then
        'Range((cell.Offset(0, 4)), (cell.Offset(0, 10))).Activate
        Set rngX = cell.Offset(0, 4)
        rngX.Formula = "=SUM(" & rngX.Offset(-1, 0).Address & ":" & rngX.Offset(-1, 0).End(xlUp).Address & ")"
        Set rngY = cell.Offset(0, 10)
        rngY.Formula = "=SUM(" & rngY.Offset(-1, 0).Address & ":" & rngY.Offset(-1, 0).End(xlUp).Address & ")"
    End If
Next cell
也许:

Dim rngX As Range, rngY As Range

For Each cell In Range("E2:E1000") 'example of range
    If cell.Value = "CCOIL" Or cell.Value = "COIL" Or cell.Value = "DCOIL" Then
        'Range((cell.Offset(0, 4)), (cell.Offset(0, 10))).Activate
        Set rngX = cell.Offset(0, 4)
        rngX.Formula = "=SUM(" & rngX.Offset(-1, 0).Address & ":" & rngX.Offset(-1, 0).End(xlUp).Address & ")"
        Set rngY = cell.Offset(0, 10)
        rngY.Formula = "=SUM(" & rngY.Offset(-1, 0).Address & ":" & rngY.Offset(-1, 0).End(xlUp).Address & ")"
    End If
Next cell

编辑-我想我找到了一个使用“联合”的替代方法


编辑-我想我找到了一个使用“联合”的替代方法


对我个人来说,看到一片模拟数据会有帮助,这样我们可以提供一个更简单的方法。当然,添加了一张图片,你可以在E列看到“线圈”,然后在I列看到Autosum。对我个人来说,看到一片模拟数据会有帮助,这样我们可以提供一个更简单的方法。当然,添加了一张图片,您可以看到E列中的“线圈”,然后是I列中的自动求和。我使用了几乎相同的方法。我唯一的不同是将if改为
if InStr(cell.Value2,“COIL”)>0,然后
击败我,我使用了几乎相同的方法。我唯一的区别是将if更改为
if InStr(cell.Value2,“COIL”)>0,然后