[英]VLookUpFunction VBA - not returning desired values
我目前不知所措,似乎無法理解為什么簡單的 vlookupfunction 不起作用。
Sub Button3_Click()
A = Textbox1.Value
B = ActiveWorkbook.ActiveSheet.Range("A1:G20")
BaneOfMyExistence = Application.WorksheetFunction.VLookup(A, B, 5, False)
BaneOfMyExistence = Textbox2.Value
End Sub
我搜索了很多論壇,很多人似乎都遇到了 vlookup 功能的問題。 不幸的是,我似乎找不到適用的解決方案。
我希望宏找到一個匹配(行號列在 A 列中)與 textbox1 中的數字變量,並將 textbox2 的值(也是數字)粘貼到 BaneofMyExistence 中。
我嘗試了許多不同的方法/語法,這些方法/語法給我帶來了許多不同的錯誤。 然而,當前代碼不返回任何錯誤,也不返回指定單元格中的任何值。
有人可以幫助我嗎?
您有很多問題沒有得到解答,但我相信您正試圖在一列真實數字中找到看起來像數字的文本。 簡單地說, 99<>"99"
。
您沒有進行任何變量聲明,因此所有變量都被隱式聲明為變體。 變體可以是真實的數字或文本或看起來像數字的文本。
A = Textbox1.Value
即使文本框中出現數字,這也會將字符串值放入 A 中。 Ia 字符串永遠不會在真實數字列中匹配。
將 B 設置為您要查找的范圍。 您正在使用您使用的語法創建一個二維變體數組。
使用 application.vlookup,您可以使用 IsError 測試“不匹配”。
您正在用 Textbox2.Value 中的值覆蓋 BaneOfMyExistence,我認為它是一個零長度字符串。 反轉此操作以將 vlookup 中的值放入 Textbox2。
option explicit
Sub Button3_Click()
dim A as long, B as range, BaneOfMyExistence as variant
A = clng(Textbox1.Value)
SET B = ActiveWorkbook.ActiveSheet.Range("A1:A20")
BaneOfMyExistence = Application.match(A, B, 0)
if not iserror(BaneOfMyExistence) then
ActiveWorkbook.ActiveSheet.cells(BaneOfMyExistence, "E") = Textbox2.Value
else
ActiveWorkbook.ActiveSheet.cells(BaneOfMyExistence, "E") = "no match"
end if
End Sub
使用Option Explicit ,您會看到很多問題都消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.