2014-09-10 51 views
0

单元格未填充公式,但在其中写入了“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 

编辑:更新的代码

非常感谢!

+0

什么你的意思是“它不能正常工作”吗?它会抛出一个错误吗?它什么都不做?它做了什么,但不是你所期望的? – AJPerez 2014-09-10 08:19:09

+0

我希望现在更清楚 – 2014-09-10 08:22:06

+0

你可以输入你正在尝试的确切公式。我的意思是,你如何在Excel Cell – 2014-09-10 08:22:58

回答

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),"""") 
+0

谢谢,那肯定是其中的一个错误!但仍然没有显示公式,但它只是一个“FALSE”.. – 2014-09-10 10:52:33

+0

只要注意到您将公式放在E列中,但您也在查找E列。您不能那样做 - 它创建一个循环引用。 – Rory 2014-09-10 10:58:53

+0

那不是问题,它应该填充D,通过查找列E.打字错误;我更新了代码 – 2014-09-10 11:10:26

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))" 

编辑来串联式的文字:新增失踪右括号。

+0

+ 1击败我:D – 2014-09-10 08:28:34

+1

@SiddharthRout ......我甚至知道什么'Lagerplätze '是没有咨询字典:-)) – teylyn 2014-09-10 08:30:13

+0

它告诉我我得到一个objectrelated错误,当我尝试.. – 2014-09-10 08:31:15

相关问题