Function csimplex(CODIGO As String)
Dim rg As Range
Set rg = Workbooks.Open("C:\Users\mvela\Documents\Prueba.xlsm").Worksheets("Simplex").Range("A:Z")
csimplex = Application.WorksheetFunction.VLookup(CODIGO, rg, 3, False)
End Function
2条答案
按热度按时间sc4hvdpw1#
不能在VBA、VLOOKUP和EVALUATE中引用已关闭的工作簿。解决方法是快速打开工作簿,返回值,然后关闭工作簿。
.XLSB比.XLSM小,加载、检索和关闭速度更快。如果你要做很多次,那么你可以建立一个静态数组并使用它。
ih99xse12#
我甚至测试了它。打开你想要关闭的工作簿,在A列复制一个值,然后将其粘贴到你想要打开的工作簿的A1中,并将下面的代码放在B1中。关闭工作簿,看看它是否工作。这个错误意味着vlookup引用的列没有找到匹配的值。这通常意味着它是一个格式问题。
先看看这是不是问题所在。
我们可以试着用它。
试试这个,你可能会喜欢它更多:
如果它是打开的。我有代码的一些地方。我会继续挖掘。