使用功能在某些外部Excel文件中的Vlookup数据

时间:2018-08-26 03:23:27

标签: vba excel-vba

我使用产品代码在很多Vlookup中查找某个文件(c:/pricelist.xlsx)中的价格。我想通过创建一个新的VBA函数来简化它,但是它不起作用。

Function findprice(codes)

Dim price
Dim pricebook As Workbook
Dim pricesheet As Worksheet
Dim pricerange As Range
Dim coderange As Range

Set pricebook = Workbooks("c:\info\pricelist.xlsx")
Set pricesheet = pricebook.Sheets("Sheet2")
Set pricerange = pricesheet.Range("FF1:FF20000")
Set coderange = pricesheet.Range("H1:H20000")


findprice = Application.Index(pricerange, Application.Match(codes, coderange, 0))


End Function

1 个答案:

答案 0 :(得分:0)

我不能肯定地说,因为您的问题未包含任何示例数据或您想做什么/为什么做的解释,但我怀疑您过于复杂化了。 >

  • 您不需要自定义函数即可从工作表中调用工作表函数。只需使用工作表函数即可。

  • 在这种情况下,VLookup更容易并且节省了一个步骤(如您在标题中所建议的。)

  • 不是指两个单元格的巨大范围,而是指整个列。

  • 引用另一个Excel文件中的单元格就像引用其他文件的任何其他公式一样。 (更多信息,here


您应该能够在工作表上使用类似的内容:

=VLOOKUP(A1,'c:\info\pricelist.xlsx'!$H:$FF,155,FALSE)

...其中A1是要匹配的值(即codes)。

如果出于某些原因需要需要此VBA,则很容易像示例函数一样进行调整。


更多信息: