首页 > 解决方案 > 有没有更有效的方法来编写具有相对单元格引用计算的 VBA?

问题描述

我正在使用 VBA 自动化 Excel 工作表的组件,我很好奇是否有更有效的方法来使用相对单元格引用填充计算。这需要几秒钟来计算超过 1,000 行。有没有办法更有效地做到这一点?

目前我正在做这样的事情来计算一个单元格值,基于上述两个单元格之间的差异:

For Each cell In rng
    ' get the current row
    current_row = cell.Row

    ' check if we're in the cell that needs the calculation
    If ActiveSheet.Range("A" & current_row) = "criteria" Then
        ' take the difference of the two above cells
        cell.Formula = "=OFFSET(" & cell.Address & ", -2, 0) - OFFSET(" & cell.Address & ", -1, 0)"
    End If

Next cell

或者,我们可以就地计算:

cell.Value = cell.Offset(-2, 0) - cell.Offset(-1, 0)

但这似乎并没有更快。

我坚持使用的 Excel 格式是我无法更改的非标准矩形格式,所以虽然我知道标准的列格式可以一起解决这个问题,但我正在尝试在现有格式的范围内工作.

标签: excelvba

解决方案


推荐阅读