ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: gouweicao78

[原创] 轻松控制循环引用完全教程

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-19 11:43 | 显示全部楼层

控制循环引用三法宝之二:计数器

编程经常会看到类似使用变量i,经过一个计算后i=i+1的循环语句。
我称之为“计数器”,每次计算,都会在前次结果累加1。
作为“遍历”的一种工具,这个东西很有用。
比如:
设置D1单元格为启动开关,以B1为计数器,可以用:
  1. =IF(D1,B1+1,0)
复制代码

一个非常简单易懂的公式——当D1启动后,B1=B1+1的循环引用,每一次都会在前次结果累加1,如果D1被关掉(比如清空或输入0),则这个循环语句赋予B1一个初始值0——也可以称之为“计数器归零”。

有了B1这个计数器,我们可以从A1单元格中“遍历”每一个字符,比如在B2输入一个公式:
  1. =IF(D1,MID(A1,B1,1),"")
复制代码

当D1未启动时,赋予B2一个初始值——空文本""
当D1启动后,随着每一次迭代,B1将依次变化为=0+1、=1+1、=2+1、=3+1……即1、2、3、4……
因此,使用MID(A1,B1,1)就可以依次将A1的字符取出。

例如:【循环引用】之将待测数据代入模板套算多个单价   一例中的计数器,可以取出每一个需要代入计算的数据——也就是“遍历”的过程。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-19 12:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

控制循环引用三法宝之三:结束语句

从楼上的“计数器”例子来看:

  1. =IF(D1,B1+1,0)
复制代码
D1启动后,假设设置的迭代计算次数为X,只要按一次F9刷新,这个公式就会运算X次,无穷无尽。
虽然还有D1可以控制停止循环引用,而当B1的值超过一定数量之后,对于使用计数器的循环引用公式来说,并没有什么意义。

结束语句,也是IF判断,比如公式:

  1. =IF(D1,IF(B1<10,B1+1,B1),0)
复制代码
则B1<10作为循环的条件,可以当B1的值达到10的时候,停止再累加——也就限定了B1的上限。
同理,还可以设置使用计数器的循环引用公式来作为结束语句。

TA的精华主题

TA的得分主题

发表于 2009-9-19 12:14 | 显示全部楼层
循环引用貌似懂了一点,可实际操作时特不顺手,看来还得慢慢消化版主的教程。

TA的精华主题

TA的得分主题

发表于 2009-9-29 12:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
真不知道,现在“循环引用”可以用来解决问题了!!

TA的精华主题

TA的得分主题

发表于 2009-9-30 23:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-10-6 19:41 | 显示全部楼层
想不到"循环引用"有这么多名堂,学习了!收藏了!谢谢了!!

TA的精华主题

TA的得分主题

发表于 2009-10-13 13:52 | 显示全部楼层
不错,谢谢了,真怀疑楼主是微软Excel开发组派来的

TA的精华主题

TA的得分主题

发表于 2009-10-13 14:08 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-13 14:18 | 显示全部楼层
大家喜欢就行。这篇文章也算是新书预告了,呵呵。

TA的精华主题

TA的得分主题

发表于 2009-10-15 09:50 | 显示全部楼层

低手

各位仁兄,附件能不能帮忙解决一下

Book1.rar

1.81 KB, 下载次数: 131

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 16:53 , Processed in 0.037087 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表