我正在处理一个 excel 电子表格,并且想要一个单元格中的 if 语句,如果满足某个条件,则允许用户输入,否则计算一个值。就像是
=if(condition true, whatever user wants, 5*$A$1,)
有没有办法做到这一点?
我正在处理一个 excel 电子表格,并且想要一个单元格中的 if 语句,如果满足某个条件,则允许用户输入,否则计算一个值。就像是
=if(condition true, whatever user wants, 5*$A$1,)
有没有办法做到这一点?
您将无法在与公式相同的单元格中使用用户输入。(不使用 VBA)
要在没有 VBA 的情况下执行此操作,您将需要至少使用 2 个单元格,一个用于您的公式,一个用于用户值
有几种方法可以用 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”块中或通过将单元格公式还原为来拒绝更改最初的。
=IF(C11="Economic",120,IF(C11="DBServer",480,IF(C11="Gamer",120,IF(C11="Custom",M15,"null"))))
我的示例是在给定某些约束的情况下构建最佳计算机。Economic
有一个带有、DBServer
、Gamer
和Custom
作为选项的下拉菜单。如果您选择经济,那么 120 将显示在单元格中,DbServer 表示 480,等等。如果您选择自定义,那么它将引用单元格 M15,这是一个用户输入,不会影响您想要的单元格的代码中的最终号码。
您要么需要使用宏来仅更新空列,要么需要允许用户在另一列中输入值然后合并此列中的值,第三个选项是用公式填充它并允许人们将其编辑为任何值如果他们只想要值