乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何在excel中用宏(VBA)实现<em>VLOOKUP</em>的功能_百...-excel

如何在excel中用宏(VBA)实现<em>VLOOKUP</em>的功能_百...-excel

作者:乔山办公网日期:

返回目录:excel表格制作


当vlookup找不到匹配的结果,就会返回错误值#N/A,这个错误值使vba报错。
为了避免找不到而报错,可以使用以下错误捕获
Sub test()On Error Resume NextCells(5, 1) = Application.WorksheetFunction.VLookup(Cells(5, 2),筏护摧咎诋侥搓鞋掸猫 Sheets("HR").Range("A:C"), 3, 0)End Sub当然,你使用find方法也可以,方法不唯一,就看你习惯用哪个。

最简单的办法:如果你熟悉vlookup()函数的话,在宏里直接调用函数即可

调用方法为:Application.WorksheetsFunction.Vlookup()

zhidaovlookup找不到匹配的结果,就会返回错误值#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方法也可以,方法不唯一,就看你习惯用哪个。



只查一个没意义,写代码的目的就是批量查,示例代码

Option Explicit

Sub 宏1()
    Dim db, arr, i, rlt
    Set db = CreateObject("Scripting.Dictionary")
    arr = Sheets("表2").UsedRange
    For i = 1 To UBound(arr)
        db(Trim(arr(i, 1))) = Trim(arr(i, 2))
    Next i
    arr = Sheets("表1").UsedRange
    ReDim rlt(1 To UBound(arr), 1 To 1)
    For i = 1 To UBound(arr)
        If db.Exists(Trim(arr(i, 3))) Then rlt(i, 1) = db(Trim(arr(i, 3)))
    Next i
    Sheets("表1").Range("d1").Resize(UBound(rlt), 1) = rlt
End Sub

相关阅读

  • <em>Excel</em> <em>vlookup</em>一个条件同

  • 乔山办公网excel表格制作
  • 1、例如下图中,B列和C列分别是部门百名称和对应的员工名单,我们的目的是在F1中录入部门名称后,在F4及以下单元格中能度显示相应的所有部门员工名单。2、在A2中录入公式:=COUNT
  • 为什么使用<em>excel</em> <em>vlookup</em>

  • 乔山办公网excel表格制作
  • 自己手工输入查找的范围vlookup函数结果出现无效引用是怎么回事" src="/uploads/tu/863.jpg" style="width: 400px; height: 267px;" />版本问题,如果你的excel文档一个是2003版本,一个是2007版本,那么0
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网