作者:乔山办公网日期:
返回目录: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