-1
我有兩個工作簿:一個是宏,另一個是數據。我試圖用數據在工作簿中查找值,但它不起作用。在到達VLookup
的代碼後,它停止,並且之後的所有內容都不會執行。VLookup無法正常工作
我檢查了所有我能想到的東西,但找不到錯誤的根源。我檢查了是否可以訪問數據工作簿中的某個隨機單元格:MsgBox (budgetWorkbook.Sheets("sheet 1").Range("E16").Value)
,它工作正常。
我檢查了我的搜索值是否與數據工作簿的A列中的相應值相等,它的工作原理 - 它是msgboxes「Equals」。
Dim i As Integer
Dim budgetItemSheetName As String
i = 1
Dim budgetItemValue As Long
MsgBox (budgetWorkbook.Sheets("sheet 1").Range("E16").Value) 'shows up
If budgetItemNames(i) = budgetWorkbook.Sheets("sheet
1".Range("A16").Value) Then
MsgBox("Equals") 'shows up
End If
budgetItemValue = Application.VLookup(budgetItemNames(i), _
budgetWorkbook.Sheets("sheet 1").Range("A:B"), _
2, False) 'fails, but it should find the search value in A16 cell and give B16 cell's value
resultArray(i) = budgetItemValue 'doesn't work
MsgBox (budgetItemValue) 'doesn't show up
有人可以告訴我我在做什麼錯嗎?
編輯:看起來像VLookup
非常糟糕。將不得不使用自定義搜索功能。 VLookup
開發者應該在地獄裏燃燒。
是否檢查'budgetItems(I)'是在查找範圍內,但你有沒有檢查'budgetItemNames(i)'是否在查找範圍內? (如果你沒有在所有的代碼模塊中使用Option Explicit,學會這麼做 - 你不會後悔的。) – YowE3K
它是如何失敗的?它會拋出一個錯誤嗎?當你手動輸入公式時它是否工作? – RealCheeseLord
VLookup對數據類型很挑剔,而VBA中的相等運算符非常寬容。例如,如果一個單元格被格式化爲一個字符串,而另一個整數VLookup將不會找到該值,即使它們在文本上相同。 –