首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行时错误9

运行时错误9
EN

Stack Overflow用户
提问于 2016-06-28 20:39:15
回答 1查看 679关注 0票数 0

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

代码语言:javascript
运行
复制
 Cells(lrow + 1, 2) = Application.WorksheetFunction.vlookup( _
    Corp.Sheets("Sheet3").Range("$B$1"), _
    Workbooks("S:\_Shared Files MTL\Corporate Spreads\Weekly Sheets\" & _
               myvalue & "_weekly sheet.xls"). _
                 Sheets("Pricing Sheet").Range("$B$18:$L$232"), 5, False)

我正在尝试将数据从另一个工作簿中提取到当前工作簿(Dim Corp)中。

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

我要求用户使用消息框输入日期:

代码语言:javascript
运行
复制
myvalue = InputBox("Insert date of file to upload in format yy_mm_dd", "User date", Format(Now(), "yy_mm_dd"))

对于为什么vlookup公式不起作用有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-29 00:31:08

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

未经测试:

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38085870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档