2013-03-06 246 views
2

我有一個表單,它有一個項目清單,根據表單選擇取消隱藏相關的項目表。由於項目名稱的長度,每個項目都分配了一個ID。 vlookup函數旨在根據另一個工作表中名稱的匹配檢索相關ID。Excel中VBA的vLookup錯誤

代碼如下。

傳入的fundName值是「AX - Arnold Xchange Securities(USD)」。 fundID位於正在搜索的數組的第5列。 基金ID肯定存在

這裏的問題是,它給我一個運行時錯誤,它無法獲得函數類的vLookup屬性。錯誤1004

Private Sub FundLookupImage_Click() 

Dim fundName As String 
Dim fundSheetName As String 
Dim ws As Worksheet 

Set ws = Worksheets("DownloadTable") 
MsgBox ws.UsedRange.EntireRow.Count 

fundName = Me.FundList.Value 
fundName = """" & fundName & """" 
MsgBox fundName 

fundSheetName = CStr(Application.WorksheetFunction.VLookup(fundName, ws.Range("A:F"), 5, True)) 
MsgBox fundSheetName 

Unload Me 
End Sub 

我測試過用Excel本身的VLOOKUP方法,它獲取正確的ID

+0

你的vlookup看起來是正確的(如果你確定列表是有序的 - 如果不刪除'True')。你確定你需要把'fundName'放在引號中嗎?嘗試刪除'fundName =「」「」&fundName&「」「」'... – 2013-03-06 08:55:48

回答

1

使用VLOOKUP讓我總是瘋狂的時候我不得不使用它,請試試這個:

DIM searchResult AS variant 
    searchResult = 0 
    On Error Resume Next 
    searchResult = Application.WorksheetFunction.VLookup(fundName, ws.Range("A:F"), 5, 0) 
    fundSheetName = CStr(searchResult) 
+0

嗨!它適用於該錯誤恢復。猜猜我現在必須首先隔離它。謝謝!!! – 2013-03-06 09:51:33