返回列表 上一主題 發帖

VLOOKUP的問題

VLOOKUP的問題

想請問一下如何在使用VBA的VLOOKUP,因為測試了很多但是抓的值都是錯誤,但又不知道哪裡錯誤,有沒有人可以幫我解釋一下

程式碼如下:

Sub V式抓值()

Dim x As Integer
Dim y As String
Dim z As String
1
z = 2
y = Worksheets("Sheet1").Range("A" & z).Value
Range("B2").Value = Application.VLookup(y, Sheet2.[A1:B100], 2)



End Sub



麻煩了!>"<

Book1.rar (12.15 KB)

建議你別侷限於在VBA中引用工作表函數
效果不好還很費字
VBA有VBA自己的方法
此例用FIND方法就很適合
沒有左右邊的問題
參考一下說明嘗試看看吧!

TOP

哈!原來如此,我有嘗試這樣寫
if  Application.VLookup(y, Sheet2.[A1:B100], 2, 0))=iserror then
可是錯誤一時也不知該怎麼處理,原來iserror的寫的方式跟函數很像,謝謝指導!
再請教一下application引用的函數中,為什麼不能使用offset呢??
那如果我想抓的直在索引列的左邊,因為vlookup只能往右邊抓值,但是
有時候數據在陣列的左邊,那該怎麼處理啊?

TOP

回復 11# sang520


    If IsError(Application.VLookup(y, Sheet2.[A1:B100], 2, 0)) Then
MsgBox "計算有誤"
Else
Range("B2").Value = Application.VLookup(y, Sheet2.[A1:B100], 2, 0)
End If
學海無涯_不恥下問

TOP

想在請問一下!在函數的時候如果需要判斷是否錯誤的時候會常用
『if』搭配『iserror』去除錯誤的顯示方式,可是在VBA的時候該如
何去除錯呢?

TOP

謝謝!您的解答已經讓我找到答案了!
真的是受益良多!

TOP

VLOOKUP函數必須注意表格內資料型態與搜尋參數資料型態是否相符
也就是說當表格第一欄是數值你的VLOOKUP第一個參數也要是數值
表格第一欄是字串你的VLOOKUP第一個參數也要是字串
學海無涯_不恥下問

TOP

本帖最後由 sang520 於 2011-6-30 11:26 編輯

我又遇到問題了!為什麼我把其他檔案的資料複製→貼上值到sheet2這個活頁
!程式碼都沒變,但是又抓不到了!是什麼問題啊????

Book1(增加資料筆數).rar (86.04 KB)

TOP

你把y定義為String
y=值就是字符"100006",而為是數字100006
在表二中只有數字10006,找不到"100006"的字符
所以只能用數字類型
Long所代表的意思是什麼呢,最好是你自己找excel中的說明,才會有印象!

TOP

哈哈!謝謝a8350070 幫我尋找錯誤,也謝謝oobird的耐心解答,偶經過測試真的抓到值了!
超開心的,但是有個疑問,當宣告時為何不能使用string反而用long才行?那此兩個使用的方式
為何?那Long所代表的意思是什麼呢?能否教導一下,謝謝!
實在感謝以上幫忙我解答的前輩們,謝謝!

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題