1

Excel VBA で動的な if ステートメントを作成する方法はありますか? 基本的に、ユーザーがさまざまな変数を入力できるパラメーター化された計算を作成しようとしています。

変数1「変数2」「変数3」

この場合、変数 1 はセル参照です 変数 2 は = または < または > などになります 変数 2 はセル参照になります

したがって、私の If ステートメント ステートメントは、If variable1 varaible2 variable3 then "y" else "n" になります。

コードで試してみると

 If FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value & SRCBook.Sheets("Filter Parameters").Cells(2, 3).Value Then wbNew.Sheets("Output Table").Range(ResultString) = "Y" Else wbNew.Sheets("Output Table").Range(ResultString) = N"

式を適切に評価していないようですが、常に真の値を返すようです。とにかくそのような機能を構築することはありますか?

最初に式を文字列として膨らませてみましたが、コードは次のようになりました。

EvaluateFunction = FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value & SRCBook.Sheets("Filter Parameters").Cells(2, 3).Value

If EvaluateFunction= true Then "Y" Else "N"

しかし、それもうまくいきませんでした

4

1 に答える 1

3

変数のソースを信頼する場合は、簡単に実行できます

If Application.Evaluate(FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value & SRCBook.Sheets("Filter Parameters").Cells(2, 3).Value) Then
    ....
End If

そうしないと、任意のコードが実行される可能性があるため、実行する前に値が数値や演算子であることを確認することをお勧めします。

于 2012-10-15T22:32:40.513 に答える