Excel公式中的范围在插入换档后发生变化,我怎样才能阻止它改变?
我有这样一个Excel单元格中的Excel 2010公式(公式在T列中):
=SUMIF($B$14:$B$44335;$T8;$E$14:$E$44335)
这个公式是这样的:它findRange("B14:B44335")
中具有Range("T8")
的值的单元格(例如,在Range("B192:B370")
)之间, E列中的值(例如,在Range("E192:E370")
)。
该公式工作正常,但背景VBA代码couses的问题。 此VBA代码有时会扩展或缩短Range("B14:E44335")
。 VBA代码使用insert shift:=xlDown
或delete shift:=xlUp
用于扩展或缩短。
在VBA中插入移位(插入178行)导致公式如下更改:
=SUMIF($B$192:$B$43623;$T8;$E$192:$E$43623)
所以公式也从B14
转移到B192
。
这很奇怪,因为公式在列T中,并且VBA代码与列T无关。
我试图给范围的名称,当我写Countries
,然后ExcelselectRange("B14:E44335")
,所以
=SUMIF(Countries;$T8;$E$14:$E$44335)
但是我又遇到了同样的问题。 Insert Shift
, Countries
显示Range(B192:B43623")
无论如何,无论在其他细胞中发生什么,我怎样才能将我的配方中的范围保持为永久性的?
尝试这个:
=SUMIF(offset($b$1,13,0,44321, 1), $t8, offset($e$1,13,0,44321))
这使用OFFSET来创build固定范围:14到44335 ..如果这应该是一个固定的范围,你应该是金。 如果不是,你需要找出一些公式/逻辑来计算13和44321 ..;)
由于斯科特在上面评论中提到的原因,Excel正在调整你的范围,偏移绕过;)