Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7117|回复: 25

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

[复制链接]
发表于 2007-10-2 14:36 | 显示全部楼层 |阅读模式
<p>&nbsp; 刚开版,出道题试下。</p><p>&nbsp;题目:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要求编写一个自定义函数cha,完成指定区间查询比率:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0-10000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1%</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10001-25000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2%</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25001-50000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4%</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50001-80000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5%</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;80001-100000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5%</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;大于100000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7%</p><p>&nbsp; 如&nbsp;&nbsp;&nbsp;单元格A1中有数值<font color="#0909f7">15280</font>&nbsp; 则在其他单元格中设置公式 <font color="#ee3d11">=cha(A1)</font>&nbsp; 返回结果 <font color="#1111ee">2%</font></p><p><font color="#1111ee">&nbsp; 注:1、</font><font color="#de3910">不能在单元格中使用辅助区域</font></p><p><font color="#de3910">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#1111ee">2</font>、最简代码只需一句</font></p><p><font color="#1111ee">&nbsp; 最佳答案送金币5个</font></p>
[此贴子已经被作者于2007-10-2 14:44:51编辑过]
发表于 2007-10-2 16:10 | 显示全部楼层
回复

使用道具 举报

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

怎么没有人参与呢,是太简单了??[em04]
回复

使用道具 举报

发表于 2007-10-2 17:21 | 显示全部楼层

<p>最简单的是不是语句里用公式</p>
回复

使用道具 举报

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

<p>应该有多种方法</p>使用IFF函数或调用vlookup函数和lookup函数
[此贴子已经被作者于2007-10-2 17:37:28编辑过]
回复

使用道具 举报

发表于 2007-10-2 17:34 | 显示全部楼层

[em03]因为他们都放假去啦。
回复

使用道具 举报

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

<p>谁能调用用vlookup函数完成,就算最佳答案吧,其实就是想测试一下大家对VBA中二维常量数组的使用.</p>
[此贴子已经被作者于2007-10-2 17:39:48编辑过]
回复

使用道具 举报

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

<p>VB能直接用1%吗</p>
回复

使用道具 举报

发表于 2007-10-2 18:52 | 显示全部楼层

<p>&nbsp;</p><p>ublic Function cha(ByVal rng As Range)<br/>&nbsp;&nbsp;&nbsp; cha = Format(Application.Evaluate("Lookup(" &amp; rng.Value &amp; ",{0, 10001, 25001, 50001, 80001, 1000001},{0.01, 0.02, 0.04, 0.05, 0.65, 0.07})"), "0.0%")<br/>End Function</p>
[此贴子已经被作者于2007-10-2 18:56:37编辑过]
回复

使用道具 举报

发表于 2007-10-2 18:55 | 显示全部楼层

<p>"0.0%"原来要这样</p>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 17:51 , Processed in 0.234904 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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