Excel - 跨多个工作簿的vlookup出错

时间:2013-06-24 15:11:17

标签: excel-vba for-loop vlookup vba excel

我的以下代码显示错误消息"应用程序定义或对象定义的错误",我不知道为什么。你能看看并帮我解决问题吗?

Private Sub CommandButton1_Click()

j = 3

For i = 1 To 46

Sheets("Income").Range(Cells(6, j), Cells(51, j)).Formula = "=VLOOKUP($B6,[" & Cells(5, i + 2).Value & ".xlsx]2 Intercompany markup!$A$1:$E$70,4,FALSE)"

j = j + 1

Next i

End Sub

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当您使用该语法在“收入”表单上定义范围时,您需要为.Range(Cells(x,y))指定工作表。

您还应声明变量。

每次输入完全限定的工作表名称都会非常荒谬,因此您还应声明工作表变量。

试试这个:

    Dim ws As Worksheet
    Dim j As Integer
    Dim i As Integer

    Set ws = ThisWorkbook.Sheets("Income")
    j = 3

    For i = 1 To 46

        ws.Range(ws.Cells(6, j), ws.Cells(51, j)).Formula = _
            "=VLOOKUP($B6,[" & ws.Cells(5, i + 2).Value & ".xlsx]2 Intercompany markup!$A$1:$E$70,4,FALSE)"
        j = j + 1

    Next i