如何修复此错误1004?重写这条线

时间:2017-09-18 09:30:28

标签: excel vba excel-vba

我在VBA中有以下代码行:

Range("A40:A64").Formula = "=IF(index(optional_processes,row()-39)=0;"";optional_processes,row()-39))"

如果没有if-statement,某些单元格会显示0。我希望这些0是空白的。这就是if-statement应该做的事情。我认为它给出了应用程序或对象定义的错误,因为语句中有双引号。我怎样才能获得空白单元而不是0

2 个答案:

答案 0 :(得分:2)

即使本地Excel在公式中使用;(分号)作为参数分隔符,在使用VBA编写公式时,也必须使用,(逗号)

除此之外,公式还存在一些问题:

  • 您在index - 部分
  • 错过了else
  • 使用""""而非"",如Kresimir建议
  • 使用Kiran在他的第一个建议中写的ISERROR

我认为这会奏效:

Range("A40:A64").Formula = "=IF(isError(index(optional_processes,row()-39)),"""",index(optional_processes,row()-39))"

答案 1 :(得分:0)

试试这个:

Range("A40:A64").Formula = "=IF(ISERROR(index(optional_processes,row()-39)),'',index(optional_processes,row()-39))"

OR

Range("A40:A64").Formula = "=IF(index(optional_processes,row()-39)=0,"""",index(optional_processes,row()-39))"