应用程序定义 - 或在VBA中添加公式时对象定义错误

时间:2016-09-18 08:20:11

标签: excel vba excel-formula

我正在尝试在VBA中添加包含变量的公式,但是它会不断抛出以下错误:

  

应用程序定义 - 或对象定义错误

以下是代码, expectedProjectWS budgetLines 是工作表。它基本上试图引用 budgetLines 工作表。

Dim Findo3 As Range

For Each a In refData.Range("G7:G" & LastRow_RefData).Cells

Set Findo3 = budgetLines.Range("B8" & ":" & "B" & lastRow3).Find(a.Value, LookIn:=xlValues, _
                        SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
                        MatchCase:=False, SearchFormat:=False)

    expectedProjectWS.Range("A" & lastAddress).Offset(1, 10).Formula = "=VLOOKUP(" _
                    & budgetLines.Range(Findo3.Address).Offset(0, -1).Value _
                    & ",BudgetLines!" & budgetLines.Range(Findo3.Address).Offset(0, -1).Address & ":$M$19,12,FALSE)"

Next

但是,当我调试budgetLines.Range(Findo3.Address).Offset(0, -1).Address时,它会返回其值。

1 个答案:

答案 0 :(得分:0)

您的代码似乎是多行的,但不包含行继续符。试试这个:

expectedProjectWS.Range("A" & lastAddress).Offset(1, 10).Formula = "=VLOOKUP(" _
& budgetLines.Range(Findo3.Address).Offset(0, -1).Value _
& ",BudgetLines!" & budgetLines.Range(Findo3.Address).Offset(0, -1).Address _
& ":$M$19,12,FALSE)"


如果仍然出现同样的错误,请确保您的Range(...).Offset个来电都没有返回无效范围。

例如,以下代码尝试访问无效范围的地址,并返回“应用程序定义的或对象定义的错误”错误,因为单元格“A1”的左上方没有单元格“:Range("A1").Offset(-1, -1).Address