【问题标题】:Separate Autosum Offsets or Individual Ranges For Selecting Active Cells Excel VBA用于选择活动单元格的单独自动和偏移量或单独范围 Excel VBA
【发布时间】:2018-07-20 14:51:45
【问题描述】:

我可能已经删除了该标题,但我想做的是自动求和(通过下面的宏)仅基于下面的偏移量的某些列。

因此,在找到“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

示例数据集

【问题讨论】:

  • 对我个人而言,查看一段模拟数据会有所帮助,以便我们可以提供更简单的方法
  • 是的,当然,添加了一张图片,您可以在其中看到 E 列中的“COIL”,然后是 I 列中的 Autosum。

标签: excel vba offset


【解决方案1】:

也许:

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

【讨论】:

  • 击败了我,我使用了几乎相同的方法。我唯一的区别是将 if 更改为 If InStr(cell.Value2, "COIL") > 0 Then
【解决方案2】:

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

For Each Cell In Range("E2:E" & findLastRow(.Range("A2")))
    If Cell.Value = "CCOIL" Or Cell.Value = "COIL" Or Cell.Value = "DCOIL" Then

        Union(Cell.Offset(0, 4), Cell.Offset(0, 6), Cell.Offset(0, 8), Cell.Offset(0, 10)).Select

        Selection.Formula = _
            "=SUM(" & Range(Selection.Offset(-1, 0), Selection.Offset(-1, 0).End(xlUp)).Address(False, False) & ")"

    End If
Next Cell

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2020-11-04
    • 1970-01-01
    相关资源
    最近更新 更多