Excel vba中使用vlookup函数

    1. 在excel vba编程中使用vlookup()时,vlookup不能直接写成excel公式中的样式[ =VLOOKUP(123,A1:C100,3,FALSE) ],会出现“子过程或函数未定义”的错误,应该写成application.VLOOKUP(123,A1:C100,3,FALSE) 或者写成 Application.WorksheetFunction.VLookup()方式。

   2. 如果使用Application.WorksheetFunction.VLookup()时,会报错“不能取得worksheetfunction的vlookup属性”,因此最好使用第一种形式:application.VLOOKUP(123,A1:C100,3,FALSE) 。具体原因根据这里所说,Application.WorksheetFunction.VLookup()会进入debug模式,application.VLOOKUP(123,A1:C100,3,FALSE)不会进入debug模式。当然,如果想忽略错误可以直接写 "On Error Resume Next" 。

   3.在使用上面任何一种形式的时候都有可能出现找不到“123”的情况,这种情况可以通过判断语句 Application.WorksheetFunction.IsError()  和 if 配合来处理,让错误输出成自己想要的格式。


findvalue = Application.VLookup(ActiveWorkbook.Worksheets(1).Range("E" & i), o, 2, 0)    ' o为所查找的区域

  If (Application.WorksheetFunction.IsError(findvalue)) Then
     ActiveWorkbook.Sheets(1).Cells(i, "G").Value = ActiveWorkbook.Sheets(1).Cells(i, "E").Value  
     'vlookup找不到,则G列的值等于E列的值
  Else
     ActiveWorkbook.Sheets(1).Cells(i, "G").Value = findvalue
  End If

参考资料:

http://iofai.com/559.html

http://www.exceltip.net/thread-20656-1-1.html

http://www.excelpx.com/forum.php?mod=viewthread&tid=284178

http://wubinsq.blog.163.com/blog/static/50751341200822144057698/

http://blog.csdn.net/iamlaosong/article/details/8929404

http://www.cpearson.com/excel/callingworksheetfunctionsinvba.aspx

http://www.mrexcel.com/forum/excel-questions/584913-application-vs-application-worksheetfunction.html


  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ExcelVBA是一种编程语言,可以用来自动化执行一系列操作。如果要通过VBA来调用VLOOKUP函数实现动态查询,我们可以按照以下步骤进行操作: 1. 打开VBA编辑器:在Excel按下Alt+F11键,即可打开VBA编辑器窗口。 2. 在VBA编辑器插入新的模块:在"插入"菜单选择"模块",即可在项目资源管理器创建一个新的模块。 3. 编写VBA代码:在新的模块输入以下代码,用于调用VLOOKUP函数实现动态查询。 ```vba Function VLOOKUP_Dynamic(LookupValue As Range, LookupRange As Range, ColumnIndex As Integer) As Variant Dim Result As Variant Result = Application.WorksheetFunction.VLookup(LookupValue, LookupRange, ColumnIndex, False) VLOOKUP_Dynamic = Result End Function ``` 4. 保存并关闭VBA编辑器:保存VBA代码,然后关闭VBA编辑器窗口回到Excel工作表。 5. 在单元格调用VBA函数:在Excel工作表选择一个单元格,在函数输入"=VLOOKUP_Dynamic(要查找的值, 查找范围, 返回列索引)",并按下回车键。其,"要查找的值"是要动态查询的值,"查找范围"是要进行查询的范围,"返回列索引"是要返回的列号或列索引。 通过以上步骤,我们可以通过VBA调用VLOOKUP函数实现动态查询。每当单元格的值发生变化时,VLOOKUP_Dynamic函数将会重新计算并返回相应的查询结果。这种方法可以节省时间和手动操作的复杂性,提高查询的效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值