0

私は次のことを達成しようとしています: ユーザーには、変更可能な仮定のリストを含む Excel スプレッドシートが表示されます。

Title       |     Value        |
Input01     |       10         |  =
Input02     |       2          |  >=
Input03     |       800        |  >=
Input04     |       4          |  >=
Input05     |       2          |  <=

If .. Then仮定が満たされた場合にデータを取り込むステートメントがあります。If .. Thenただし、仮定が空白の場合は、ステートメントに含めるべきではありません。

If x = Input01Value And y >= Input02Value _
And z >= Input03Value And a >= Input04Value _
And b <= Input05Value Then

ユーザーが Input03 を省略

If x = Input01Value And y >= Input02Value _
And a >= Input04Value And b <= Input05Value Then

これで、各値が存在するかどうかを確認し、その後にIf適切な変数を含む別のステートメントを続けることができます。しかし、これは少し冗長なようです。

次のようなことが可能かどうか疑問に思っていました。

Input 01 = ""
If Input01Value != "" Then Input01 = "x = " & Input01Value
'Then use join or something similar to join all of them ..

And Then これをステートメントInput01で直接使用します。If .. Thenこのようにして、変数が空のAnd ..場合は含まれず、Ifステートメントは失敗しません。
例えば。(シナリオを説明するだけで、これが機能しないことはわかっています)

VBA: If Input01 Then
Result while compiling: If x = Input01Value Then

注意してください、私は次のようなことができることを知っています:
If Boolean And Variable2 > 4 Thenそして、セルに値BooleanVariable2入力して入力しますが、これに関する問題は、たとえば、ユーザーがVariable2(これは合理的です)を省略することを決定した場合です。不合格。例えば。If (Boolean = True) And > 4 Then.

私の質問が明確であることを願っています。助けてくれてありがとう。

4

2 に答える 2

1

文字列演算子と 2 つの値に応じて選択ケースで動作する関数を使用するのはどうですか?

Function conditionalString(condition As String, x As Variant, y As Variant) As Boolean
Select Case condition
    Case "="
        If (x = y) Then
            conditionalString = True
        Else
            conditionalString = False
        End If
        Exit Function
    Case ">="
        conditionalString = (x >= y)
        Exit Function
    Case "<="
        conditionalString = (x <= y)
        Exit Function
    Case ">"
        conditionalString = (x > y)
        Exit Function
    Case "<"
        conditionalString = (x < y)
        Exit Function
    Case Else
        conditionalString = False
End Select
End Function

次に、すべての仮定を呼び出す前に、「値が空白でないかどうかを確認する」という別の関数を使用できます。

于 2013-08-07T18:26:09.547 に答える