通过vba插入vlookup函数会在列上添加括号

时间:2016-06-30 11:24:47

标签: excel vba excel-vba

我在复杂的vlookup"插入函数"中遇到括号问题。 这是每周每天计划所需要的。由于工作簿的性能很慢,我决定每天打开/关闭计划,整个计划工作但是有探险的专栏。部分" U"的代码专栏是:

Range(Cells(firstm, "U"), Cells(lastm, "U")) = "=IF(RC2=0,IF(RC[-8]>0,
IF(ISERROR(VLOOKUP(G:G,Expedition!F:H,3,0)),R1C22,VLOOKUP(G:G,Expedition!F:H,3,0)),R1C22)
,IF(ISERROR(VLOOKUP(G:G,Expedition!F:H,3,0)),R1C22,VLOOKUP(G:G,Expedition!F:H,3,0)))"

它非常混乱,但它起作用:)至少在表格中。

问题是单元格中插入公式的部分是

VLOOKUP(G:(G);Expedition!F:(H);3;0)

而不是

VLOOKUP(G:G;Expedition!F:H;3;0)

如果只使用VLOOKUP,它工作正常,我不知道为什么在这个例子中是那些括号。

有什么想法吗?

//编辑以便更好地理解

2 个答案:

答案 0 :(得分:0)

尝试使用R1C1A1引用样式并指定公式类型,例如:

Range(Cells(firstm, "U"), Cells(lastm, "U")).FormulaR1C1 = "=IF(RC2=0,IF(RC[-8]>0, IF(ISERROR(VLOOKUP(C[7],Expedition!C[6]:C[8],3,0)),R1C22,VLOOKUP(C[7],Expedition!C[6]:C[8],3,0)),R1C22) ,IF(ISERROR(VLOOKUP(C[7],Expedition!C[6]:C[8],3,0)),R1C22,VLOOKUP(C[7],Expedition!C[6]:C[8],3,0)))"

编辑:当然必须将相对引用G:G等更改为相对引用C[7]C[7]变为G:GC7变为$G:$G

答案 1 :(得分:0)

嗯,它完全有效......当我在一半的代码中使用它时,为什么我没有使用它作为列?.. :)谢谢!