0

このExcelステートメントをVBAで実行する必要があります

IF(AND(X2="FMS",O2>=0),1,0)

これは、変数「FMS」を渡すVBAでサブを呼び出す方法です

Call passFunction("FMS")

次のようにサブの宣言

Sub passFunction(var As Variant) 
    Worksheets("Sheet1").range("A1").FormulaR1C1 = "=IF(AND(X2=" & var & ",O2>=0),1,0)"
End Sub

ただし、関数が実行された後、これは Excel で得られる出力です

IF(AND(X2=FMS,O2>=0),1,0)

変数 FMS の引用符が欠落していることに注意してください

4

3 に答える 3

2

実際には引用符を渡しているのではなく、文字列を使用して次を渡しています: FMS

VB6 で文字列内の引用符をエスケープする

"" を使用して、引用符を文字列に挿入できます。例: (リンクから)

dim sometext as String = "Hello ""Frank"" how are you?"

あなたが望んでいるのは:

Call passFunction("""FMS""")

または、そこに引用符を追加するように passFunction を変更します。

Sub passFunction(var As Variant) 
    Worksheets("Sheet1").range("A1").FormulaR1C1 = "IF(AND(X2=""" & var & """,O2>=0),1,0)"
End Sub
于 2013-10-17T15:18:27.913 に答える