2014-12-05 76 views
0

我一直在嘗試在VBA中使用vlookup,它很煩人。VBA使用Vlookup將值分配給ActiveCell,在另一個參考的工作簿

ActiveCell.Value = Application.WorksheetFunction.VLookup(Cells(currentrow, 12), currwor.Worksheets("Sheet1").Range("R4C3:R160C10"), 6, False) 

是代碼

我使用的主要元素是 currwor已被設置爲引用其他工作簿,我期待用VLOOKUP的範圍在那裏。

然而,它不斷踢出一個錯誤,說下標超出範圍。

我懷疑currwor是這個 Set currwor = ActiveWorkbook有罪的一方(然後在其中執行上述被打開的工作簿,並分配一個工作簿的名稱爲好。) 我不能用一個具體的範圍,因爲我試圖在一個範圍內的每個單元格上執行vlookup,並且該範圍每次都會更改,並且currwor將在我獲得的特定文檔上執行,但名稱可能會有所不同(格式不過相同)。對此有何建議?

編輯:一個錯誤是它不應該是sheet1,而是「產品庫存報告」。但是它仍然踢出超出範圍錯誤的下標。

回答

0

使用Set currwor = ActiveWorkbook 您將當前活動工作簿分配到currwor但是您之前提到它應該是不同的工作簿?這意味着你應該有一條線Set currworb = Workbooks("desired workbook name")

+0

好了,所以我有兩個工作簿 - 一個是一個是我已經設置爲 設置currwor = ActiveWorkbook Workbooks.Open被更新(「C:\用戶\ Nilay \的Lync錄音\質量控制Database.xlsm「) Set QCs = ActiveWorkbook 希望澄清一下。 – DanyLark 2014-12-05 11:58:08

+0

但您在代碼中使用了其他方法:一旦您打開** QC **,它將變爲活動狀態,並且在該工作簿上激活任何表單/單元格將填充您的公式,這會使VLOOKUP返回** currwor **。 – Raugmor 2014-12-05 12:14:46

+0

不確定你的意思。是的,我正在嘗試查看currwor,因爲我試圖從那裏提取更新後的數據到QC中。 然而,它顯然超出範圍。 – DanyLark 2014-12-05 12:21:02

0

是 - 無知的錯誤。正如所指出的那樣,表單名稱不正確,問題在於,在執行過程中,我跳過了將工作表分配給currwor的位。

有點過分,我應該考慮從這裏刪除這篇文章。

相關問題