使用Cell Value作为VLOOKUP表数组的参考?

时间:2013-07-11 21:08:41

标签: excel vba excel-formula vlookup

我希望能够允许用户更改用作VLOOKUP中的引用的文件。正在使用的所有文件都将具有相同的数组,只是不同的文件路径。

这就是我认为它应该如何运作。

  1. 点击打开文件浏览器的宏按钮。
  2. 允许用户选择文件。
  3. 在单元格(A1)中粘贴文件路径
  4. 将路径转换为包含数组。
  5. 在VLOOKUP公式中,将单元格A1引用为“表格数组”。
  6. 我已经能够完成第3步。有关如何添加已定义数组并在VLOOKUP中引用单元格的任何想法吗?

1 个答案:

答案 0 :(得分:0)

我只会记录你想要做的事情然后用你所分配的变量替换你所做的事情,比如你把路径放到单元格A1中。然后让宏重写相应的vlookup公式。

您还可以创建一个能够显示所需内容的公式,然后使用vba复制该值并粘贴值。然后,您可能需要在单元格中查找并替换某些内容,以使其实际转换为公式。

示例:

In A1 Put the path (with workbook name, i.e.C:\Users\username\Desktop\Book3.xlsx )
In B1 ="=VLOOKUP(D1,'"&MID(A5,1,FIND("*",SUBSTITUTE(A5,"\","*",LEN(A5)-LEN(SUBSTITUTE(A5,"\","")))))&"["&MID(A5,FIND("*",SUBSTITUTE(A5,"\","*",LEN(A5)-LEN(SUBSTITUTE(A5,"\",""))))+1,100)&"]Sheet1'!B$1:C$4,2,FALSE)"
B1 then looks like this =VLOOKUP(D1,'C:\Users\username\Desktop\[Book3.xlsx]Sheet1'!B$1:C$4,2,FALSE)
Copy B1 to C1 and do a find replace of something, like find Users and replace all with Users.

这很麻烦,但我使用这样的工具,需要根据更新另一个电子表格的6000行数组公式更新30个不同大小的不同文件。它适用于我,但对于大文件来说有点慢。