全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
4308 2
2011-06-12
这段代码是要根据用户输入的货币从表格中查找对应的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高手们现身吧!帮个小忙帮我看看如何?
二维码

扫码加我 拉你入群

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

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

全部回复
2011-6-12 07:25:30
HLOOKUP的查找范围由B4:E7改成B5:E7。
二维码

扫码加我 拉你入群

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

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

2011-6-13 19:11:44
2# Jack315

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

不过谢谢你哦~*^-^*
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群