在单元格中编写“动态”公式

时间:2014-09-10 08:16:07

标签: excel vba excel-vba excel-formula

单元格未填充公式,但在那里写入“FALSE”。任何想法如何改变,以便公式正确显示?虽然没有错误信息..

'code
q = 1
Do Until q = 10
   q = q + 1
   If Cells(q, 4).HasFormula Then
   Else
     If IsEmpty(Cells(q, 4)) Then
     Cells(q, 4).Formula = Cells(q, 4).Formula = "=IFERROR(VLOOKUP(E" & q & ",Lagerplätze!A:B,2,FALSE),)"
     End If
   End If
Loop

'code

编辑:更新的代码

非常感谢!

2 个答案:

答案 0 :(得分:1)

你需要使用&将公式的文本与q变量

连接起来的字符
 Cells(q, 4).Formula = "=IF(ISNA(VLOOKUP(D" & q & ";Lagerplätze!A:B;2;FALSE));"""";VLOOKUP(D" & q & ";Lagerplätze!A:B;2;FALSE))"

编辑:添加了缺少的右括号。

答案 1 :(得分:0)

.Formula属性要求您使用美国区域设置,因此:

Cells(q, 5).Formula = "=IF(ISNA(VLOOKUP(E" & q & ",Lagerplätze!A:B,2,FALSE)),"""",VLOOKUP(E" & q & ",Lagerplätze!A:B,2,FALSE)"

此外,如果您使用的是Excel 2007或更高版本,我建议使用IFERROR:

Cells(q, 5).Formula = "=IFERROR(VLOOKUP(E" & q & ",Lagerplätze!A:B,2,FALSE),"""")