有没有办法在Excel VBA中查找列dynamic?

我想要做这样的事情:

For i = 1 To 10 ActiveCell.FormulaR1C1 = _ "=VLOOKUP(THIS VALUE,'IN THIS TABLE RANGE,i,FALSE)" Next i 

我想将我的值传递给列值来查找。

只需使用string操作如下:

 ActiveCell.FormulaR1C1 = "=VLOOKUP(THIS VALUE,'IN THIS TABLE RANGE," & i & ",FALSE)" 

如果使用R1C1引用, FormulaR1C1使用FormulaR1C1 ,否则使用Formula

这会将公式放在名为SheetName的工作表的第一行的第一行中:

 With Sheets("SheetName") For i = 1 To 10 .Cells(1, i).Formula = "=VLOOKUP(THIS VALUE,IN THIS TABLE RANGE," & i & ",FALSE)" Next i End With 

你可以在这样的事情之后

 Cells(1, 1).Resize(, 10).FormulaR1C1 = "=VLOOKUP(""THIS_VALUE"",R2C1:R100C10,COLUMN(),FALSE)" 

你必须改变的地方:

  • Cells(1, 1)到您实际的单元格引用要开始编写公式

  • R2C1:R100C10R1C1风格的实际“TABLE RANGE”地址

  • COLUMN()使写入的单元格列索引与“TABLE RANGE”列之间的差别恰当(例如,它可以是某个COLUMN()-1