Excel-vlookup在多个工作簿中出错

Excel-vlookup在多个工作簿中出错,excel,for-loop,vlookup,vba,Excel,For Loop,Vlookup,Vba,我下面的代码显示错误消息“Application defined or object defined error(应用程序定义或对象定义错误)”,我不确定原因。请你看一下,帮我解决这个问题好吗 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

我下面的代码显示错误消息“Application defined or object defined error(应用程序定义或对象定义错误)”,我不确定原因。请你看一下,帮我解决这个问题好吗

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

谢谢您的帮助。

当您使用该语法在“收入”表上定义范围时,您需要为
.Range
(单元格(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

使用该语法在“收入”表上定义范围时,需要为
.Range
(单元格(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

现在它已经工作得更好了!谢谢:)但是,我收到一个随机的其他错误-在通过宏完成几列之后,它突然无法识别下一个工作簿的路径,尽管它与其他工作簿位于完全相同的位置。你知道如何解决这个问题吗?我相信那是另一个问题。最好是在另一个问题中描述这个问题,以及代码和失败的地方。确保包含错误。问题是没有直接的“错误”发生;真的很奇怪。您将拥有正确的文件名,例如[test.xlsx],包括正确的工作表引用,但Excel将打开一个浏览器窗口,因为它无法识别该位置,尽管它与已识别的其他工作簿位于同一位置。你知道这可能是什么吗?否则我会按照你的建议解决这个问题。无论如何,谢谢!每次运行时,行为是否同时发生?如果是这样,您可以单步执行代码(在“代码”窗口中使用F8)并在发生时检查变量。这可能会帮助你找出哪里出了问题。我不知道问题出在哪里,但问题只是以某种方式自行解决了——效果很好,谢谢:)现在它已经运行得更好了!谢谢:)但是,我收到一个随机的其他错误-在通过宏完成几列之后,它突然无法识别下一个工作簿的路径,尽管它与其他工作簿位于完全相同的位置。你知道如何解决这个问题吗?我相信那是另一个问题。最好是在另一个问题中描述这个问题,以及代码和失败的地方。确保包含错误。问题是没有直接的“错误”发生;真的很奇怪。您将拥有正确的文件名,例如[test.xlsx],包括正确的工作表引用,但Excel将打开一个浏览器窗口,因为它无法识别该位置,尽管它与已识别的其他工作簿位于同一位置。你知道这可能是什么吗?否则我会按照你的建议解决这个问题。无论如何,谢谢!每次运行时,行为是否同时发生?如果是这样,您可以单步执行代码(在“代码”窗口中使用F8)并在发生时检查变量。这可能有助于您找出问题所在。我不知道问题出在哪里,但问题只是以某种方式自行解决了—效果很好,谢谢:)