我正在使用VBA自动化Excel工作表的组件,我很好奇是否有一种更有效的方法来填充相对单元格引用的计算。这需要几秒钟的时间才能计算出约1000行。有办法更有效地做到这一点吗?
目前,我正在根据上述两个单元格之间的差异来执行以下操作来计算单元格值:
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格式是我无法更改的非标准矩形格式,因此尽管我知道标准列式格式会一起消除此问题,但我正在尝试在以下范围内工作现有格式。