0

vba コーディングを使用して式を挿入する必要があります。

現時点でコード行は

=IF(
    AND(
        Compliance="No",
        OR(
            Delivery <> "",
            C31 <> ""
        )
    ),
    "Please Delete Compliance Data",
    IF(
        AND(
            E11="",
            E13="",
            E23="",
            E25="",
            E26="",
            E28="",
            E30="",
            E31=""),
        VLOOKUP(C15,'Extrapolated RV Calculator'!B:S,18,0),
        "Please complete form / SC request"
    )
)"

コード内のテキスト部分でエラーが発生しているようです。

どんな助けでも大歓迎です。

4

2 に答える 2

2

VBA で文字列内で引用符を使用する 4 つの方法を次に示します。

  • "" を Chr$(34) に置き換えます。34 は引用符の ASCII コードです。
  • String(2,Chr$(34)) を使用して二重引用符を作成します
  • 1 つにつき 2 つの二重引用符を使用します (Tim のコメントによる)
  • ワークシート関数の ISBLANK など、2 つの二重引用符を別の方法に置き換えます。

これらのどれも良くありません。私は通常、それらをエスケープするために 2 つの二重引用符を使用します。ただし、引用符が多すぎて読み取りや保守が困難な場合があるため、別の方法を使用します。次に例を示します。

Dim aFormula(1 To 5) As String

aFormula(1) = "=IF(AND(Compliance=""No"",OR(Delivery<>" & String(2, Chr$(34))
aFormula(2) = ",C31<>" & String(2, Chr$(34)) & ") ),"
aFormula(3) = Chr$(34) & "Please Delete Compliance Data" & Chr$(34)
aFormula(4) = ",IF(AND(ISBLANK(E11),ISBLANK(E13),ISBLANK(E23),ISBLANK(E25),ISBLANK(E26),ISBLANK(E28),ISBLANK(E30),ISBLANK(E31)),"
aFormula(5) = "VLOOKUP(C15,'Extrapolated RV Calculator'!B:S,18,0),""Please complete form / SC request""))"

Sheet1.Range("R13").Formula = Join(aFormula, vbNullString)
于 2013-03-20T12:27:36.953 に答える
0

将来に備えて、まだ慣れていない VBA コードで Excel の機能を使用する場合は、次のことを行うことを強くお勧めします。

開発者メニューに移動し、マクロの記録ボタンを押します。

セルに数式を入力し、削除を押してセルの内容をクリアし、セルに入ってすべての文字を削除してEnterを押してセルの内容をクリアします。

ここでマクロを停止します。そして、VBA ウィンドウに移動します。これらのことを達成するためにコードがどのように構成されているかを確認してください。

他のことをしたいときはいつでもこれを適用して、インターネットを何年もブラウジングしなくても、何を使用して目的の結果を得ることができるかをよく理解してください。

また、ローカル ウィンドウでローカル変数を監視するか、ビルドしようとしている文字列を Debug.Print して、これまでの外観を確認します。

于 2013-03-20T09:24:27.487 に答える