我构建了一个vlookup代码,但似乎无法理解我做错了什么。我收到运行时错误' 9':下标超出范围错误消息。
a
我正在尝试将其他工作簿中的数据导入当前的工作簿(Dim Corp)。
其他工作簿具有动态名称,日期(myvalue)每周更改一次。
我要求用户输入日期并带有消息框:
b
关于为什么vlookup公式不起作用的任何想法?
答案 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