网站大量收购独家精品文档,联系QQ:2885784924

Excel VBA 中 Indirect 函数的使用.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel VBA 中 Indirect 函数的使用

了解 Indirect 函数 返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数 INDIRECT。 前半句还好理解,后半句有点儿拗口了,其实大可不必在此深究这一句话的意思。个人觉得下面其他内容更重要。 语法 INDIRECT(ref_text,a1) Ref_text? ?为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。 如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF!。 如果 ref_text 引用的单元格区域超出行限制 1,048,576 或列限制 16,384 (XFD),则 INDIRECT 返回 #REF! 错误。 注释????此行为不同于 Microsoft Office Excel 2007 之前的 Excel 版本,早期的版本会忽略超出的限制并返回一个值。 A1? ?为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。 如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。 如果 a1 为 FALSE,ref_text 被解释为 R1C1-样式的引用。 第1参数要求 【示例文件】 通读完毕,其实看来INDIRECT很简单,就两个参数,一个是代表引用的字符串,一个是选择引用样式。 首先,我们选择熟悉的A1引用样式来解读,即默认使用一个参数或者第2参数为TRUE或非0数值: Ref_text? ?为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。 Ref在函数参数中一般指单元格引用;text则一般指字符串。这句话中,最重要的是告诉了我们INDIRECT的第一参数尽管可以变化多端,但最终必须是单元格引用。 如图:A1单元格输入B2,B2单元格输入C3,C3单元格输入你找到这里了吗? 下载 (31.75 KB) 2009-4-9 01:25 【用法1】第1参数直接就是表示某单元格区域的字符串,比如: 示例1:=INDIRECT(A1)——返回对A1单元格的引用,得到B2 示例2:=INDIRECT(A1:C2)——返回对A1:C2单元格区域的引用。 【用法2】第1参数是引用,间接指向某单元格区域,比如: =INDIRECT(A1) 因为A1单元格值B2,那么这个公式就是=INDIRECT(B2),最终返回的是对B2单元格引用,得到C3; 再绕远点 =INDIRECT(INDIRECT(A1)) 那么这个公式第1步变为:=INDIRECT(INDIRECT(B2));第2步变为=INDIRECT(C3),因而最终返回对C3单元格的引用,得到你找的这里了吗? 【用法3】第1参数是定义的名称,注意,必须是引用单元格或者可以表示单元格引用的字符的名称,比如: 按CTRL+F3,定义名称X=A1 =INDIRECT(X)——返回对A1单元格的引用; 在B1输入X,然后用=INDIRECT(B1)得到#REF!错误,或者=INDIRECT(X)也同样是错误, 这是因为X是一个单纯的字符,不是合法的单元格引用,而INDIRECT(X)中的X是一个名称,它的值是字符A1,而A1是可以转换为合法单元格引用的文本。 定义名称Y=OFFSET($A$1,,,3,3) 则=INDIRECT(Y)??得到{C3,#REF!,#REF!;#REF!,你找到这里了吗?,#REF!;#REF!,#REF!,#REF!},即把名称Y中对A1:C3的值分别代入,再逐一返回其对应的引用。不是合法单元格引用就返回错误。 通过上面3中用法,基本可以理解INDIRECT函数对第1参数的要求。 2楼通过对INDIRECT函数第1参数的示例讲解了简单的单元格引用。对与R1C1引用样式,INDIRECT函数的第2参数应使用FALSE或0或简写为逗号,比如=INDIRECT(Sheet1!RC,FALSE)、=INDIRECT(Sheet1!RC,0)、=INDIRECT(Sheet1!RC,)——都可以引用Sheet1表的相同位置(比如公式在C2,就引用Sheet1表的C2单元格) 在此基础上,继续拓展,讲解一下这个函数的几个典型应用: 一、跨工作表、簿引用 =INDIRECT(Sheet1!A1)—

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档