ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] [函数用法讨论系列21]关于Indirect函数引用工作表名的书写方式及对定义名称的再引用

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-5 22:38 | 显示全部楼层
本帖已被收录到知识树中,索引项:INDIRECT

补充:

Excel帮助关于公式中含有错误有这么一条:

将其他工作表名称包含在单引号中 如果公式中引用了其他工作表或工作簿中的值或单元格,并且那些工作簿或工作表的名称中包含非字母字符,那么您必须用单引号 (') 将这个名称括起来。

看来,MS早有声明,只不过没这么细罢了。呵呵。

[此贴子已经被作者于2006-4-5 22:39:45编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-5 22:50 | 显示全部楼层
学习学习!

TA的精华主题

TA的得分主题

发表于 2006-4-5 23:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习,其实没有必要那么深研究哦。主要是我没有,呵呵,懒惰呀。。。

TA的精华主题

TA的得分主题

发表于 2006-4-6 08:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用[I]lgcmeli[/I]在2006-4-5 23:51:35的发言:[BR]学习,其实没有必要那么深研究哦。主要是我没有,呵呵,懒惰呀。。。
要分学习目的:)

TA的精华主题

TA的得分主题

发表于 2006-4-6 08:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我也深有同感,以前我在运动会的报名表中用到:“传统校—男子组”、“传统校组—女子”、“省中学—男子组”、“省中学—女子组”,当用到了跨工作表引用时,仔细察看发现在工作表名的前面加上了单引号,当没有“—”符号时,却没有,觉得奇怪,后来在尝试其它符号,也有单引号。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-12 11:52 | 显示全部楼层

[续]关于Indirect对定义名称再引用的分析

Indirect函数常用来做多级下拉菜单等,其原理是利用定义名称,然后在单元格输入与定义名称相同的字符再对含有这种字符的单元格用Indirect作引用。 但是,这个用法让很多喜欢data=Offset(A1,,,counta(A:A)-1)之类的动态引用作定义名称的朋友苦恼,因为此时用Indirect("data")总是返回#REF错误,究竟是为什么呢。 本人经过一些试验后发现:
INDIRECT(ref_text,a1) Ref_text 对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。——函数帮助信息
中“对单元格的引用”有些含糊,应该区分为对单元格的“直接引用”和“间接引用”来对待,具体见附件: (此观点尚未定论,欢迎砸砖,更感谢扔玉 h6EQHtdo.rar (5.2 KB, 下载次数: 12071)
[此贴子已经被作者于2006-4-24 10:28:57编辑过]

i849igTs.rar

5.25 KB, 下载次数: 551

[函数用法讨论系列21]关于Indirect函数引用工作表名的书写方式

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-4-12 15:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

名称改一下:混合引用改为相对引用,然后在D45:D49输入名称,才能实现数据有效性的输入。

choose名称 =CHOOSE(MATCH(Sheet1!$E39,Sheet1!$E$5:$E$9,),data1,data2,data21,data22,data3)

D45:D49输入:

data1

data2

data21

data22

data3

这样,E45:E49的有效性才能用啊!

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-12 16:43 | 显示全部楼层
感谢chenhuafu兄修正,其实我附件里的引用原来是对的。后来排版的时候直接用“拖动”一个区域放到另一个区域的方法,导致后面的有效性定义名称不能用了。呵呵。已修正。

TA的精华主题

TA的得分主题

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

补充,16楼的关于Indirect原理的观点部分有误,请结合http://club.excelhome.net/dispbbs.asp?boardid=3&replyid=326768&id=67593&page=1&skin=0&Star=3一帖26楼guangyp兄的附件和理解。

但关于解决层级下拉菜单的方法正确。

2006-5-26补充。

TA的精华主题

TA的得分主题

发表于 2006-8-16 15:25 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 21:58 , Processed in 0.041329 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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