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巨集中用for迴圈將一列滿足條件的後面加上需要的數值比如
直接寫個公式就可以了。假如你那個1在的列是b,在c裡寫公式if b1 1,a 空 然後填充就可以了。如果一定要用vba,那就讀出來單元格的內容,然後根據內容填充就可以了。 姓王的 sub aaa for i 1 to range a65536 end xlup row if cells i,1 張 ...
excel中用vba找資料
其實find函式本身就可以指定查詢的方式是優先列,還是優先行,通過xlbycolumns表示優先在列中查詢,所以 可以這樣簡化 sub xx dim i as long,rng as range for i 2 to a65536 end 3 row set rng b c find cells i...
在excel中如何使用vba的巨集
陽光上的橋 保護公式可以這樣 選擇不需要保護 需要錄入內容 的單元格,設定單元格屬性,最後一個 保護 卡里面的 鎖定 取消,其它那些沒有取消鎖定的有公式的單元格自然是鎖定狀態。下一步是在工具 審閱 新版本 或者 工具 選單 舊版本 裡面選擇 保護工作表 設定一個密碼後確認。完成這兩步之後,鎖定的單元...