2017-11-07 24 views
2

私はVBAで、指定された数式を実行し、列Dの下にそれを適用する単純なスクリプトだと思ったものを作った。 私はそれを実行すると、ランタイムエラー13型不一致を取得します。 Iveは、式を1 + 1のような単純なものに置き換えることで、実際の式部分を絞り込み、それがうまく動作します。アドバイスはありますか?Excel VBA構文エラー

種類の不一致エラーに:

Sub FillFormula() 
Range("D2").Formula = "=SUBSTITUTE(D2;" - ";"")" 
Range("D2", "D" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown 
End Sub 

作品罰金:

Sub FillFormula() 
Range("D2").Formula = "=1+1" 
Range("D2", "D" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown 
End Sub 
+1

VBAではセミコロンではなくカンマを使用します。 – SJR

+2

引用符で囲む引用符は引用符で囲む必要があります。 '"= SUBSTITUTE(D2、" " - " "" ")" ' –

+0

@SJR間違っていれば修正してください。 – Maldred

答えて

1
  • D2にあなたはそれがあると、それを確認する方法をExcelの数式を書きますExcelで動作します。
  • 選択D2と、次を実行します。

Public Sub PrintMeUsefulFormula() 

    Dim strFormula As String 
    Dim strParenth As String 

    strParenth = """" 

    strFormula = Selection.Formula 
    strFormula = Replace(strFormula, """", """""") 

    strFormula = strParenth & strFormula & strParenth 
    Debug.Print strFormula 

End Sub 

使用即時のウィンドウに表示されているもの。それは動作するはずです。 I have been using it quite a lot.

0

ありがとうございます。 誰もが使ったアドバイスで、すぐには機能しませんでした。 最終式:

Sub FillFormula() 
Range("F2").Formula = "=SUBSTITUTE(D2,""-"","""")" 
Range("F2", "F" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown 
End Sub