[英]VBA Code for Vlookup
當我在vlookup
VBA代碼中引用特定單元格時,如下所示,我可以獲得該代碼以返回正確的答案。
Application.VLookup(Sheets("Setup").Cells(2, 1),
Sheets("Download").Range("A:G"), 7, 0)
但是,如果將代碼替換為變量( VLDate
),則會收到錯誤消息
Application.VLookup(VLDate, Sheets("Download").Range("A:G"), 7, 0)
我試圖使Dim VLDate
As String起作用,但這也沒有用。
有什么建議么?
在您的示例Sheets("Setup").Cells(2,1)
不是字符串。
Cells
返回一個范圍。
Dim VLDate As Range
Set VLDate = Sheet("Setup").Cells(2,1)
如果您的第一個示例可行,則使用上面的代碼設置VLDate的值也應使您的第二個示例也可行。
編輯可能會誤解您的問題,因此盡管上述說法是正確的,但可能無濟於事!
您能否提供VLDate的示例值,以及單元格格式類型和查找范圍內的示例值?
我想我知道問題出在哪里。 vlookup
的第一個輸入必須與您要查找的數據類型相同。 例如,如果在搜索的單元格中只有數字,然后嘗試將VLDate標注為數字,如果嘗試將其作為字符串變暗,它將找不到匹配項,並且會給您類型不匹配錯誤。
您可以將VLDate variant
為dim,這比較容易,但是如果要查找數字,請不要使用引號。
嘗試添加行(出於調試目的)
MsgBox(CStr(Application.VLookup(Sheets("Setup").Cells(2, 1), Sheets("Download").Range("A:G"), 7, 0))
並且如果您使用Error 2042
提示一個msgbox,則表示找不到匹配項,因此您應該使用錯誤的數據類型。
使用字符串的唯一情況是目標單元格的公式中包含諸如=“ 21”之類的內容,因為這是字符串。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.