如何在VBA中应用Excel的函数,如vlookup()?

我在Excel中用vba写一段程式用到下面一句Cells(5,1)=Application.WorksheetFunction.VLookup(Cells(5,2),Sh... 我在Excel中用vba写一段程式 用到下面一句
Cells(5, 1) = Application.WorksheetFunction.VLookup(Cells(5, 2), Sheets("HR").Range("A:C"), 3, 0)
执行后出错 请问是什麽原因?
展开
 我来答
chenjiawei5000
2014-02-26 · TA获得超过2779个赞
知道大有可为答主
回答量:2585
采纳率:30%
帮助的人:2053万
展开全部

当vlookup找不到匹配的结果,就会返回错误值#N/A,这个错误值使vba报错。

为了避免找不到而报错,可以使用以下错误捕获

Sub test()
On Error Resume Next
Cells(5, 1) = Application.WorksheetFunction.VLookup(Cells(5, 2), Sheets("HR").Range("A:C"), 3, 0)
End Sub

当然,你使用find方法也可以,方法不唯一,就看你习惯用哪个。

百度网友066dc732e
2014-02-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5675
采纳率:33%
帮助的人:1853万
展开全部

出现这个问题就是在HR表的A列中没有找到Cells(5,2)匹配的值。可以采用如下方法来实现:

Set rng=Sheets("HR").[A:A].Find([b2].Text,,,1)
IF Not rng Is Nothing Then [B1]=Rng.Offset(,3)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新语丝3
2014-02-26 · TA获得超过153个赞
知道小有建树答主
回答量:673
采纳率:50%
帮助的人:220万
展开全部
查找引用不应该用VBA,如果非要用VBA就用字典法。

VLOOKUP应该用定义公式的方法比较妥当。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wxpwakin
2014-02-26 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:133万
展开全部
我复制你的代码式了一下,没问题啊
这个提示就是没找到的意思,和单元格里的#N/A是一个意思
代码本身没有错,就是没找到而已
你用一个肯定能找到的再试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式