2017-10-31 21 views
1

私はVBAで約1ヶ月間働いています。残念ながら、そのため、このエラーはとてもイライラです。Excel VBA 1004エラー式

私はセルに数式を割り当てようとしていますが、私はイギリススタイルの区切り記号(セミコロンの代わりにカンマ)を使用していません。私はまだランタイムエラーが発生しています。私はExcelでそれを使用して試してみたよう

実際の式の構文は、結構です、そしてそれは私がそれをするために必要なものありませんので、私はエラーが以下の、私のVBA構文であると想定する必要があります。

With DecileChooser 
    Range("A1").CurrentRegion.PasteSpecial 

    Range("I1").Value = CurrentPD 
    Range("I2").Value = CompanyDomain 


    DecileChooser.Range("J2").Formula = "=IF($I$1 > D2, G2, "")" 

    Range("J2:J11").FillDown 

    Range("K1").FormulaLocal = "=max(J1:J11)" 

    Range("K1").Value = DecileValue 
End With 

これはサブルーチン全体ではなく、機能部分だけです。二重引用符で

+1

' "= IF($ I $ 1>のD2、G2、 """ ")"' –

+0

私が追加することができますどのような状況の下で、[お読みください「のために、私の質問への緊急」または他の類似のフレーズより速い回答を得ることができますか?](// meta.stackoverflow.com/q/326569) - これはボランティアに対処する理想的な方法ではなく、おそらく回答を得ることに逆効果があるということです。これをあなたの質問に追加しないでください。 – halfer

答えて

0

ダブルアップ:

DecileChooser.Range("J2").Formula = "=IF($I$1 > D2, G2, """")" 

または

dq = Chr(34) 
DecileChooser.Range("J2").Formula = "=IF($I$1 > D2, G2," & dq & dq & ")" 
+0

ありがとう!これは式の空のセルを参照するのに使用される構文ですか? – Reginald

+0

VBAが数式をインストールしている場合、@ Reeginaldはい。 –

1

問題ここでのコードは、式の最後として、あなたの式の中に二重引用符を読んでいることが、すなわちどのようなそれがされて読み取ります。その後、

DecileChooser.Range("J2").Formula = "=IF($I$1 > D2, G2, " 

が、残りで、構文の問題を持っている「)」

文字列を終了しないことを示すには、二重引用符を使用する必要があります。

With DecileChooser 
Range("A1").CurrentRegion.PasteSpecial 

Range("I1").Value = CurrentPD 
Range("I2").Value = CompanyDomain 

DecileChooser.Range("J2").Formula = "=IF($I$1 > D2, G2, """")" 

Range("J2:J11").FillDown 

Range("K1").FormulaLocal = "=max(J1:J11)" 

Range("K1").Value = DecileValue 
End With 
+0

ありがとうございました。 VBAでこれらの癖に慣れてくると予想されるよりも時間がかかると思います。 – Reginald

関連する問題