【问题标题】:How can I insert a file name into a VLOOKUP function如何将文件名插入 VLOOKUP 函数
【发布时间】:2016-01-23 01:55:55
【问题描述】:

我几乎完成了这个宏,它允许用户选择一个文件路径,然后它将从另一个文件中的选定文件执行vlookup。到目前为止,我的代码如下所示:

Sub SelectFile()
Dim x As String
Dim lNewBracketLocation As Long

x = Application.GetOpenFilename()

MsgBox "You selected " & x
'Find the last instance in the string of the path separator "\"
lNewBracketLocation = InStrRev(x, Application.PathSeparator)
'Edit the string to suit the VLOOKUP formula - insert "["
x = Left$(x, lNewBracketLocation) & "[" & Right$(x, Len(x) - lNewBracketLocation)

Range("AA2").FormulaR1C1 = "=VLOOKUP(RC[-1]C23&R[-1]C24,'" & x & "]Access'!C3:C27,6,0)"

选择文件后,VLOOKUP 需要如下所示:

=VLOOKUP($W2&$X2,'S:\Finance Forecast\Inventory Folders\2015\LW[08-AUG-Access Export.xlsx]Access'!$C:$AA,6,FALSE)

当我运行宏时,我不断收到运行时错误“1004”:VLOOKUP 公式行上的应用程序定义或对象定义错误 我是 VBA 新手,我们将不胜感激。

问候, 卢克

【问题讨论】:

  • 文件名前好像少了一个反斜杠?
  • 打错了,抱歉。它应该输出: =VLOOKUP($W2&$X2,'S:\Finance Forecast\Inventory Folders\2015\LW\ [08-AUG-Access Export.xlsx]Access'!$C:$AA,6,FALSE) (空间故意用于演示目的)
  • 当您手动将其键入单元格时,该公式是否有效(即:是否存在拼写错误/拒绝访问该文件夹)?

标签: vba excel filepath vlookup


【解决方案1】:

公式中的 C 值过多。应该是:

Range("AA2").FormulaR1C1 = "=VLOOKUP(R[-1]C23&R[-1]C24,'" & x & "]Access'!C3:C27,6,0)"

而不是

Range("AA2").FormulaR1C1 = "=VLOOKUP(RC[-1]C23&R[-1]C24,'" & x & "]Access'!C3:C27,6,0)"

【讨论】:

  • 谢谢罗里,现在一切都检查好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
相关资源
最近更新 更多