iT邦幫忙

0

跨工作表vlookup的vba語法

請問各位大大,
我想在輸入工號後,就能直接帶出此人的姓名
使用vlookup函數去寫,但卻跳出"型態不符合"
是不能使用string還是哪裡寫錯?
vba表單

VBA語法

2 個回答

0
paicheng0111
iT邦研究生 1 級 ‧ 2019-03-14 12:31:58

試試看

result = application.vlookup(TBNumber.text, Worksheets("基本資料").range("a:b"),2,0)

改為

result = application.vlookup(TBNumber.text *1, Worksheets("基本資料").range("a:b"),2,0)
看更多先前的回應...收起先前的回應...
yafun1724 iT邦新手 5 級 ‧ 2019-03-14 13:51:09 檢舉

還是不行QQ

paicheng0111 iT邦研究生 1 級 ‧ 2019-03-14 14:09:07 檢舉
dim result as string

改為

dim result as variant
yafun1724 iT邦新手 5 級 ‧ 2019-03-14 14:10:59 檢舉

還是顯示型態不符合

paicheng0111 iT邦研究生 1 級 ‧ 2019-03-14 14:35:22 檢舉

如果變更result的資料型態為variant呢?

yafun1724 iT邦新手 5 級 ‧ 2019-03-14 14:39:29 檢舉

我有照著你給的語法去做修改,但還是顯示型態不符合
之前寫在其他button ran的時候是可以的
但不知道為什麼改寫在textbox中之後,卻一直顯示資料型態不符合

paicheng0111 iT邦研究生 1 級 ‧ 2019-03-14 14:53:34 檢舉

我從圖片中看到這個workbook裡面有特休表特休時數特休總表三張worksheets。
沒有名為基本資料的worksheet。

yafun1724 iT邦新手 5 級 ‧ 2019-03-14 14:58:14 檢舉

剛好沒有截圖到~

paicheng0111 iT邦研究生 1 級 ‧ 2019-03-14 15:35:05 檢舉

我猜問題出在
TBNumber.Text的型態是string
worksheet("基本資料").range("A:A")是數值
兩者型態不同,所以VLookup報錯。

yafun1724 iT邦新手 5 級 ‧ 2019-03-14 16:20:43 檢舉

所以才無法帶出資料嗎?
是要變基本資料裡A:A的格式嗎?

paicheng0111 iT邦研究生 1 級 ‧ 2019-03-15 08:26:12 檢舉

我修改解答,用TBNumber.Text * 1TBNumber.Text轉為數值。
不用變基本資料裡A:A的格式

0
賽門
iT邦超人 1 級 ‧ 2019-03-14 15:55:34

請問基本資料的B欄是什麼資料類型?
回傳的Result是來自B欄結果, 會不會B欄回傳的內容不是字串?
另外, IF Not Application.ISNA(Result) Then....
/images/emoticon/emoticon39.gif
你確定能這樣用嗎?
Result不會存#N/A的. 建議你這樣改改看...

Result = IFNA(Application.vlookup(...),"Error")
if (result = "Error") Then

祝好運.

我要發表回答

立即登入回答