Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 兰色幻想

VBA练习1:如何实现区间查找

[复制链接]
发表于 2007-10-2 19:21 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>7dong502</i>在2007-10-2 17:34:13的发言:</b><br/>[em03]因为他们都放假去啦。</div><p></p>[em17][em17][em17]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2007-10-2 19:46 | 显示全部楼层

<p>ublic Function cha(ByVal rng As Range)<br/>&nbsp;&nbsp;&nbsp; cha = Format(Application.Evaluate("VLOOKUP(" &amp; rng.Value &amp; ",IF({1,0},{0;10001;25001;50001;80001;1000001},{0.01;0.02;0.04;0.05;0.65;0.07}),2)"), "0.0%")<br/>End Function</p><p>&nbsp;</p><p>抄袭 修改 [em04][em04]</p>
回复

使用道具 举报

 楼主| 发表于 2007-10-2 19:51 | 显示全部楼层

<p>还是没有看到VBA中的二维数组</p>
回复

使用道具 举报

发表于 2007-10-2 19:54 | 显示全部楼层

<p>兰版 你知道我在等你吗 </p><p>&nbsp;&nbsp; UC </p>
回复

使用道具 举报

发表于 2007-10-2 22:37 | 显示全部楼层

<p>兰版,这个行不:</p><p>ublic Function cha(ByVal rng As Range)<br/>&nbsp;&nbsp;&nbsp; cha = Format(WorksheetFunction.VLookup(rng, Array(Array(0, 0.01), Array(10001, 0.02), Array(25001, 0.04), Array(50001, 0.05), Array(80001, 0.065), Array(100001, 0.07)), 2, 1), "0.0%")<br/>End Function<br/></p>
回复

使用道具 举报

发表于 2007-10-2 22:42 | 显示全部楼层

<p>我的为什么不对:</p><p>ublic Function cha(ByVal rg As Range)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; cha = Application.Evaluate("VLOOKUP(" &amp; rg.Value &amp; ",[{0,0.01;10001,0.02;25001,0.04;50001,0.05;80001,0.065;100001,0.07}],2)")<br/>&nbsp;&nbsp;&nbsp; <br/>End Function</p><p>&nbsp;</p>[em04]
回复

使用道具 举报

发表于 2007-10-2 22:45 | 显示全部楼层

<p>ublic Function cha(ByVal rg As Range)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; cha = Application.VLOOKUP(" &amp; rg.Value &amp; ",[{0,0.01;10001,0.02;25001,0.04;50001,0.05;80001,0.065;100001,0.07}],2)<br/>&nbsp;&nbsp;&nbsp; <br/>End Function</p><p></p><p>是不是这样</p>
回复

使用道具 举报

 楼主| 发表于 2007-10-2 22:46 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>lpz001</i>在2007-10-2 22:42:53的发言:</b><br/><p>我的为什么不对:</p><p>ublic Function cha(ByVal rg As Range)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; cha = Application.Evaluate("VLOOKUP(" &amp; rg.Value &amp; ",[{0,0.01;10001,0.02;25001,0.04;50001,0.05;80001,0.065;100001,0.07}],2)")<br/>&nbsp;&nbsp;&nbsp; <br/>End Function</p><p>&nbsp;</p>[em04]</div><p>&nbsp;&nbsp;&nbsp; Evaluate是使用工作表中使用的公式返回值,所以公式首先要能在工作表的单元格中使用,工作表中数组两边是不能加中括号的,中括号表示数组是在纯VBA环境中使用。</p>
回复

使用道具 举报

发表于 2007-10-2 22:48 | 显示全部楼层

哈哈 这里不对吧{0,0.01;10001,0.02;25001,0.04;50001,0.05;80001,0.065;100001,0.07}
回复

使用道具 举报

发表于 2007-10-2 22:51 | 显示全部楼层

数组搞不懂!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2025-8-16 03:11 , Processed in 0.159965 second(s), 3 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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