没有空格的VBA字符串不起作用,空格有用

时间:2017-01-06 14:17:56

标签: excel vba excel-vba

我正在使用Excel中的VBA,并且无法解释为什么会出现此错误。

以下代码有效:

Cells(1, 1) = " =if(counta( " & aLoc & "Subbies'!$A$2:$A$20>0 ""YES"", ""NO"" "

以下代码不起作用:

Cells(1, 1) = "=if(counta( " & aLoc & "Subbies'!$A$2:$A$20>0 ""YES"", ""NO"" "

所以只需删除空格以使代码行插入公式而不是字符串会导致编译器通过错误1004.

在其他行我已经使用itll插入一个公式没有问题,但连接文本与局部变量似乎抛出这个。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Excel不允许输入错误的公式。

将公式直接放入工作表时,如果公式不正确,则会出现错误,并且单元格将保持编辑模式,直到删除或修复为止。

1004错误只是表示该错误的vba。

要帮助在公式中找到错误,请将字符串放在变量中,然后调试它以查看不正确的内容:

t = "=if(counta('" & aLoc & "Subbies'!$A$2:$A$20)>0, ""YES"", ""NO"" )"
Debug.Print t 

这会将公式放在即时窗口中,就像在Excel中一样,允许开发人员检查是否存在错误。

底线:

你可以在单元格中放置一个你想要的字符串,但是如果你想要一个公式,它必须是完整和准确的。

答案 1 :(得分:0)

Excel抱怨你试图在一个单元格中添加一个错误的公式。如果要在单元格中放置“公式作为文本”,则:

Sub DontQuoteMe()
    Cells(1, 1) = "'=if(counta( " & aLoc & "Subbies'!$A$2:$A$20>0 ""YES"", ""NO"" "
End Sub

enter image description here

(使用空间完成同样的事情)