【问题标题】:Can't get VLookup to work with another Excel file无法让 VLookup 与另一个 Excel 文件一起使用
【发布时间】:2015-08-25 21:18:15
【问题描述】:

我正在尝试使用 VBA 的 VLookup 将数据从一个 excel 文件放置到另一个文件中,但没有成功。

没有显示错误,也没有任何反应。我的单元格没有被填充,尽管经过验证,它们应该。我不能调试更多,因为关于路径、工作表名称和单元格行的一切似乎都很好。在 B 列(包含唯一编号)的键匹配之后,我试图从源文件(SourceFile.xlsx)中获取一个值。

我在打开和不打开源文件的情况下尝试了以下代码,结果完全相同:

            If Application.WorksheetFunction.VLookup(.Range("B" & cell.Row), Workbooks("C:\Users\halpsb\Desktop\projet_macro\SourceFile.xlsx").Sheets("Projects_2015").Range("B" & cell.Row), 9, False) = "Yes" Then
                .Range("D" & cell.Row) = Application.WorksheetFunction.VLookup(.Range("B" & cell.Row), Workbooks("C:\Users\halpsb\Desktop\projet_macro\SourceFile.xlsx").Sheets("Projects_2015").Range("B" & cell.Row), 7, False)
            Else
                .Range("D" & cell.Row) = ""
            End If

提前感谢您的任何帮助。

编辑:正如下面的评论中所指出的,第 7 列用于我的测试,并且在源文件中包含“是”或“否”字符串。根据此值,源文件的第 9 列用于获取数据并将其放入我的原始文件中。

【问题讨论】:

  • 查看如何在 VB 中进行 vlookup 的快速方法是打开宏记录器,将公式输入到获得结果的位置(也打开其他电子表格(SourceFile.xlsx ). 然后,当您输入公式并显示您想要的结果时,关闭您的SourceFile.xlsx,公式将使用文件路径更新。在此处发布该宏,我们可以根据需要进行调整。另外,正如@HarveyFrench 所述,您的 vlookup 范围是单个单元格(Range("B" & cel.row))...可能会导致问题。

标签: excel vba vlookup


【解决方案1】:

您的 Vlookup 公式包含“7”和“9”,因为它们试图从第二个参数指定的范围内的第 7 列和第 9 列中检索数据。

但是,你的第二个参数只包含一列,这会导致错误

您可以添加类似于以下示例的错误处理程序

Sub aa()

On Error Resume Next

Debug.Print Application.WorksheetFunction.VLookup(2, Sheet1.Range("E4:E10"), 3, False)
if err.number <> 0 then
   Debug.Print Err.Number, Err.Description
   ' an error occurred!
end if    


End Sub

考虑一下。第二个参数是单列! 9 正在尝试获取第 9 列!

        If Application.WorksheetFunction.VLookup(
        .Range("B" & cell.Row)
        , Workbooks("C:\Users\halpsb\Desktop\projet_macro\SourceFile.xlsx").Sheets("Projects_2015").Range("B" & cell.Row)
        , 9
        , False) = "Yes" 

【讨论】:

  • 7 用于包含“是”或“否”的列,9 是我实际获取的值,具体取决于是/否结果,并放置在我的原始文件中。谢谢你的错误处理部分,我不熟悉这个!
  • 你需要参考 vlookup 的帮助页面,因为参数没有按照你的想法做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
相关资源
最近更新 更多