没有空间的VBAstring不工作,与空间的工作

我在Excel中玩弄VBA,不知道为什么这个错误是popup来的。

以下代码工作:

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

所以只要删除空格来使代码行插入一个公式而不是一个string就会导致编译器错误1004。

在其他行使用itll插入公式没有问题,但连接文本与本地variables似乎抛出了这一点。 有任何想法吗?

Excel不会允许input不正确的公式。

当直接在表单中input公式时,如果它不是一个正确的公式,并且该单元格保持编辑模式,直到被删除或修复,将会出现错误。

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

为了帮助find公式中的错误,请将您的string放在一个variables中,然后debug.print来查看哪些内容不正确:

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

这将把公式放在excel中的直接窗口中,允许开发人员检查是否有错误。

底线:

你可以把任何你想要的string放在一个单元格中,但是如果你正在尝试使用一个公式,它必须是完整和准确的。

Excel正在抱怨你正在试图把一个坏的公式放在一个单元格中。 如果你想把一个“公式作为文本”放在一个单元格中,那么:

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

在这里输入图像说明

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