2017-01-06 18 views
0

ExcelでVBAを使いこなしていますが、なぜこのエラーがポップアップしているのか理解できません。VBA文字列に空白がなく、スペースがない場合

次のコードは動作します:

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

次のコードdoesntの仕事:

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

だからコードの行を作るためのスペースを除去することにより、式ではなく、文字列原因を挿入しますコンパイラからスルーアップエラー1004までです。

他の行では、式を挿入するのに問題はありませんが、ローカル変数とテキストを連結すると、これをスローするようです。何か案は?

+0

数式が完全ではないためです。あなたはあなたの ')'をすべて忘れているので、それは悪い公式であるので、それを置くことはできません。 –

+0

私は本当に気にしません(現時点ではちょうど回っていますが)現時点では動作していますが、エラーがコード内ではありません。つまり、コンパイラは文字列を挿入できません。それはExcelのエラーではなく、VBAのエラーでなければなりません – Giovanni

+0

私は明確にする必要があります。私はそれをすべて開始したときに式が完了し、エラーを投げている文字であるかどうかを確認するために物を取り除くことを始めました。 "スペースなしで=記号が触れていることがわかりました。 – Giovanni

答えて

3

をExcelが間違って許可されません入力する式。

シートに直接数式を入力すると、正しい数式でなく、セルが削除または修正されるまで編集モードのままになると、エラーが発生します。

1004エラーはそのエラーを表すvbaに過ぎません。それは同じよう

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

これは、イミディエイトウィンドウに式を入れます。その後、正しくないかを確認するためにそれをします。Debug.Print変数にあなたの文字列を配置し、式にエラーを見つけること

開発者がエラーがあるかどうかを確認することができます。

ボトムライン:

あなたがセルにしたい、これまで何の文字列を置くことができますが、数式を入れしようとしている場合は、それが完全かつ正確でなければなりません。

0

Excelは、不正な数式をセルに入れようとしていると訴えています。あなたは、その後、セルに「テキストとして数式を」入れたい場合:

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

enter image description here

(スペースを使用して同じことを実現)

関連する問題