iT邦幫忙

0

跨工作表vlookup的vba語法

  • 分享至 

  • xImage

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

VBA語法

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
paicheng0111
iT邦大師 5 級 ‧ 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

dim result as string

改為

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

還是顯示型態不符合

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

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

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

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

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

剛好沒有截圖到~

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

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

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

我修改解答,用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

祝好運.

我要發表回答

立即登入回答