Vlookup运行时错误9

时间:2016-06-28 20:39:15

标签: excel-vba runtime-error vlookup vba excel

我构建了一个vlookup代码,但似乎无法理解我做错了什么。我收到运行时错误' 9':下标超出范围错误消息。

a

我正在尝试将其他工作簿中的数据导入当前的工作簿(Dim Corp)。

其他工作簿具有动态名称,日期(myvalue)每周更改一次。

我要求用户输入日期并带有消息框:

b

关于为什么vlookup公式不起作用的任何想法?

1 个答案:

答案 0 :(得分:1)

您无法在未在Excel中打开的工作簿上运行vlookup。首先需要打开工作簿。

未测试:

Sub Tester()

    Const MY_PATH As String = "S:\_Shared Files MTL\Corporate Spreads\Weekly Sheets\"

    Dim myValue, fName As String, wb As Workbook, v, sht As Worksheet

    Set sht = ActiveSheet

    myValue = InputBox("Insert date of file to upload in format yy_mm_dd", _
                        "User date", Format(Now(), "yy_mm_dd"))

    fName = myValue & "_weekly sheet.xls"

    If Dir(MY_PATH & fName, vbNormal) <> "" Then

        Set wb = Workbooks.Open(MY_PATH & fName, ReadOnly:=True)

        v = Application.VLookup(Corp.Sheets("Sheet3").Range("$B$1"), _
              wb.Sheets("Pricing Sheet").Range("$B$18:$L$232"), 5, False)

        sht.Cells(lrow + 1, 2) = IIf(IsError(v), "No match!", v)

        wb.Close False

    Else
        MsgBox "no matching file found!"
    End If

End Sub