循环与VBA Vlookup,dynamic单元格值

Sub tabelvul() Dim nr(2) For i = 2 To 31 nr(1) = Range("AA" & i).Value nr(2) = Range("AN" & i).Value If nr(2) = 0 Then ' do nothing Else Range(nr(1)).Select ActiveCell.FormulaR1C1 = _ "=VLOOKUP(nr(2),Tabel80[[Kolom1]:[Inschrijver]],2)" End If Next i End Sub 

第一个值nr(1)是B4,所以我在B4中得到了Vlookup的公式,然而他正在寻找nr(2)而不是nr(2)的相应值,这是1,所以我想公式在表中查找1。

我很确定你的代码中还有其他的东西可以改进,但你应该改变:

 "=VLOOKUP(nr(2),Tabel80[[Kolom1]:[Inschrijver]],2)" 

对此:

 "=VLOOKUP(" & nr(2) & ",Tabel80[[Kolom1]:[Inschrijver]],2)" 

那么它看起来像你想要进入一个范围的Vlookup,直到nr(2)=范围(“AN”和我).value = 0,所以我不知道为什么你会使用一个数组,所有,如果我知道你正在尝试更多的细节,可能会更好,但我知道,这可以做到:

 Sub tabelvul() For i = 2 To 31 If Range("AN" & i).Value = 0 Then ' do nothing Else Range("AA" & i).FormulaR1C1 = _ "=VLOOKUP(" & Range("AN" & i).Value & ",Tabel80[[Kolom1]:[Inschrijver]],2)" End If Next i End Sub 

也许你应该改变"=VLOOKUP(nr(2),Tabel80[[Kolom1]:[Inschrijver]],2)" into "=VLOOKUP(" & nr(2) & ",Tabel80[[Kolom1]:[Inschrijver]],2)"