【发布时间】:2026-02-06 15:30:01
【问题描述】:
我在为 VLOOKUP 正确设置动态范围时遇到问题,每个循环应该增加 58(我有 96 个不同的范围)。 VLOOKUP 表在其他(“Gefco”)表中。我得到的错误是:
应用程序定义或对象定义的错误
代码:
Sub vlookup_rates()
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim e As Long
Dim rr, dupa As Range
Dim ws, wws As Worksheet
Dim wb As Workbook
c = 1
a = 2
b = 59
d = 2
e = 59
Set wb = ActiveWorkbook
Set ws = wb.Sheets("Gefco")
With ws
Set rr = Range(Cells(d, 4), Cells(e, 8))
End With
Set wws = wb.Sheets("Waberers")
wws.Activate
Do While c < 97
Cells(4, a).Select
Cells(4, a).Formula = "=VLOOKUP($A$4;" & rr.Address & ";5;0)" <-ERROR
c = c + 1
a = a + 1
b = b + 1
d = d + 58
e = e + 58
Loop
End Sub
我认为范围以某种方式定义错误,但我无法破解它。 请停下来。
谢谢!
【问题讨论】:
-
哪一行给你错误?是公式行吗?
-
你需要在循环内设置
rr,否则d&e永远不会增加,我没有看到“b”被使用,你可以删除它。Cells(4, a).Select你也可以删除这一行。 -
为错误行编辑
-
也看看这个..
With ws Set rr = .Range(.Cells(d, 4), .Cells(e, 8)) End With