我正在尝试在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
时,它会返回其值。
答案 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