楼主: 自由雨
4136 2

[问答] 【求助】用VBA几年以来第一篇求助帖……代码很短~~诡异的HLOOKUP函数部分情况报错~~ [推广有奖]

  • 1关注
  • 0粉丝

本科生

71%

还不是VIP/贵宾

-

威望
0
论坛币
893 个
通用积分
1.0800
学术水平
2 点
热心指数
3 点
信用等级
2 点
经验
4777 点
帖子
78
精华
0
在线时间
110 小时
注册时间
2008-12-8
最后登录
2023-11-14

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
这段代码是要根据用户输入的货币从表格中查找对应的exchange rate~用到了Match函数和Hlookup函数
        
        代码如下:
'User's input
MySheet = "Q6 Currency Exchange"
Amount = Worksheets(MySheet).Range("G3").Value
SourceCurrency = Trim(Worksheets(MySheet).Range("H3").Value)
DestinationCurrency = Trim(Worksheets(MySheet).Range("K3").Value)
     
'Programmer's input
k = WorksheetFunction.Match(DestinationCurrency, Worksheets(MySheet).Range("B5:B7"), 0)
''MsgBox SourceCurrency
''MsgBox k
ExRate = WorksheetFunction.HLookup(SourceCurrency, Worksheets(MySheet).Range("B4:E7"), k + 1)


        出现的问题如下:
当H3里面的值是GBP和USD的时候~代码运行正常!
但是当H3里面的值是EUR的时候~代码出错~~“不能取得类WorksheetFunction的Hlookup属性”

P.S.楼主后来试了直接在excel单元格里面用这个公式~发现出现同样的错误!
=HLOOKUP("EUR",$B$4:$E$7,MATCH("USD",$B$5:$B$7,0)+1)
当第一个引号里的字符串是GBP和USD时都没问题~~当字符串变成EUR时~出错值为#N/A
天雷滚滚{:3_43:}

楼主进行了多次检查,实在找不出EUR受歧视的原因~~~~VBA高手们现身吧!帮个小忙帮我看看如何?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:HLOOKUP lookup Look VBA 求助帖 求助 VBA 函数 代码 HLOOKUP

沙发
Jack315 发表于 2011-6-12 07:25:30 |只看作者 |坛友微信交流群
HLOOKUP的查找范围由B4:E7改成B5:E7。
已有 1 人评分论坛币 学术水平 收起 理由
admin + 10 + 1 鼓励积极发帖讨论

总评分: 论坛币 + 10  学术水平 + 1   查看全部评分

使用道具

藤椅
自由雨 发表于 2011-6-13 19:11:44 |只看作者 |坛友微信交流群
2# Jack315

好像excel表格的那张图没有上来……恩……Range的范围是没有问题的~~~~
后来自己找到问题了~HLOOKUP里面要加上第四个参数False~
默认情况下~只能查找升序或降序排列的~但是我这里currency的排列是乱序的~所以只能采用模糊匹配

不过谢谢你哦~*^-^*

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-6 04:10