0

私はExcelスプレッドシートに取り組んでおり、特定の条件が満たされた場合にユーザー入力を許可し、それ以外の場合は値を計算するifステートメントがセルに必要です。何かのようなもの

=if(condition true, whatever user wants, 5*$A$1,)

これを行う方法はありますか?

4

3 に答える 3

1

数式と同じセルにユーザー入力を入れることはできません。(VBA を使用しない場合)

VBA を使用せずに行うには、少なくとも 2 つのセルを使用する必要があります。1 つは数式用、もう 1 つはユーザー値用です。

VBAでそれを行うにはいくつかの方法があります

これは単純なものですが、実際にはお勧めしません。多くのセルがこれを使用すると、多くの入力ボックスが得られます!

利用方法:=IF(condition, UserInput(), false result)

Public Function UserInput() As Integer ' used integer as an example
Dim Result As Variant

    Result = Application.InputBox("Enter an Integer", "Input Required", , , , , , 1) ' inputbox, the final 1 makes it only accept numbers
    If VarType(Result) = vbBoolean Then
        UserInput = 0 ' the default value
    Else
        UserInput = CInt(Result) ' make sure its an integer
    End If
End Function

別の方法としては、選択変更イベントとセル変更イベントを使用して、変更されているセルの初期値を読み取り、変更を許可する (値を初期数式の「true」ブロックに追加するか、セルの数式を元に戻して変更を拒否する)。最初のもの。

于 2013-08-15T18:09:04.500 に答える
0

マクロを使用してnull列のみを更新するか、ユーザーが別の列に値を入力してからこの列の値をマージできるようにする必要があります。3番目のオプションは、式を入力して、人々がそれを任意の値に編集できるようにすることです値のみが必要な場合

于 2013-08-15T17:44:54.543 に答える
0
=IF(C11="Economic",120,IF(C11="DBServer",480,IF(C11="Gamer",120,IF(C11="Custom",M15,"null"))))

私の例は、特定の制約が与えられた最適なコンピューターを構築することでした。オプションとして、、、、EconomicおよびDBServerGamerドロップダウンがありました。Customエコノミーを選択した場合、120 がセルに表示され、DbServer は 480 を意味します。カスタムを選択した場合は、必要なセルのコードに影響を与えないユーザー入力であるセル M15 を参照します。最終的な数字。

于 2013-12-06T00:56:43.280 に答える