簡體   English   中英

Vlookup的VBA代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM