首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel公式中的范围在insert-shift之后更改,如何阻止它的更改?

Excel公式中的范围在insert-shift之后更改,如何阻止它的更改?
EN

Stack Overflow用户
提问于 2016-01-15 14:29:54
回答 1查看 2K关注 0票数 2

我在Excel单元格中有这样一个Excel 2010公式(公式位于T列):

代码语言:javascript
运行
复制
=SUMIF($B$14:$B$44335;$T8;$E$14:$E$44335)

这个公式是这样做的:它在Range("B14:B44335")中找到值为Range("T8")的单元格(例如,在Range("B192:B370")之间),然后将E列中的值进行求和(例如,在Range("E192:E370")之间求和)。

该公式工作良好,但背景VBA代码引发了问题.此VBA代码有时扩展或缩短Range("B14:E44335")。VBA-代码使用insert shift:=xlDowndelete shift:=xlUp进行扩展或缩短。

在VBA中插入移位(插入178行)会导致公式发生如下变化:

代码语言:javascript
运行
复制
=SUMIF($B$192:$B$43623;$T8;$E$192:$E$43623)

因此,公式也从B14转换为B192

这很奇怪,因为公式在T列中,VBA-代码与T列无关。

我试着给范围指定一个名称,比如,当我编写Countries时,Excel选择Range("B14:E44335"),所以

代码语言:javascript
运行
复制
=SUMIF(Countries;$T8;$E$14:$E$44335)

但我又遇到了同样的问题。在Insert Shift之后,Countries显示Range(B192:B43623")

无论如何,无论在其他单元格中发生什么,我如何将公式中的范围保持不变?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-15 14:36:25

试试这个:

代码语言:javascript
运行
复制
  =SUMIF(offset($b$1,13,0,44321, 1), $t8, offset($e$1,13,0,44321))

这使用偏移量来创建固定范围: 14到44335。如果那应该是一个固定的范围,你应该是黄金。如果没有,您需要想出一些公式/逻辑来计算13和44321。;)

由于Scott在上面的注释中提到的原因,Excel正在调整您的范围,忽略了这一点;)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34813270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档