如何在excel中用巨集(VBA)實現VLOOKUP的功能

時間 2021-07-08 20:34:04

1樓:慶年工坊

function myvlookup(val, rg as range, n as integer, f as boolean)

arr = rg

if f then

for i = ubound(arr) to 1 step -1if val >= arr(i, 1) thenmyvlookup = arr(i, n)end function

end if

next

else

for i = 1 to ubound(arr)if val = arr(i, 1) thenmyvlookup = arr(i, n)end function

end if

next

end if

myvlookup = "nothing is find!"

end function

2樓:

sub test()

dim dic as object,mary,mrow as long,

set dic=createobject("scripting.dictionary")

with worksheets("資料")

mrow=.cells(.rows.count,1).end(3).row

mary=.[a2].resize(mrow-1,2)

end with

for i=1 to ubound(mary,1)

dic("" & mary(i,1))=mary(i,2)

next i

with worksheets("求解表")

mrow=.cells(.rows.count,1).end(3).row

mary=.[a2].resize(mrow-1,1)

for i=1 to ubound(mary,1)

if dic.exists("" & mary(i,1)) then

mary(i,1)=dic.exists("" & mary(i,1))

else

mary(i,1)="no find!"

end if

next i

.[b2].resize(ubound(mary,1),1)=mary

end with

end sub

3樓:矮漢恨天高

既然使用了vba就沒必要再使用內建函式,vba可以把vlookup重新定義。

4樓:毋亙

vba不見得比內建函式快哦

5樓:匿名使用者

上傳附件 我看看

留個聯絡唄

在EXCEL中。用VBA程式編寫

函安白 自定義函式如下,請新增到要使用的excel檔案的vba 模組中function iscircletext byval 字串 as string do while len 字串 1if left 字串,1 right 字串,1 then iscircletext no exit functio...

如何在excel中使用vba完成這個操作

sub 整理 第1行是表頭,資料從a2開始 zh range a100000 end xlup row 資料最後行號 arr range a2 d zh 單元格區域賦值給陣列 h 1 初始化陣列行號 for i 2 to zh 1 陣列迴圈 if arr i,1 arr h,1 and arr i,...

在EXCEl中,用VBA實現單元格顏色改變

dim i r whit sheets 表名稱 r range a65536 end xlup rowfor i 1 to r if cells i,1 value 20 then.cells i,1 font.colorindex 4eed if if cells i,1 value 19 and...