Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 不使用解算器求解值_Excel_Equation Solving - Fatal编程技术网

Excel 不使用解算器求解值

Excel 不使用解算器求解值,excel,equation-solving,Excel,Equation Solving,我目前在excel中为其他用户提供以下内容 数字列不会更改。用户将在乘数1和乘数2列中输入值,并在结果列中获得值 是否有一种自动方式,用户也可以在结果列中输入一个值,并且乘数1列将发生变化 当前数字和结果列受保护,是否需要取消对结果列的保护 我建议您使用一些VBA代码,使用子工作表\u ChangeByVal目标作为工作表中的范围 如果用户在D2中输入一个值,它将在B2中输入公式=D2/A2*C2 如果用户在B2中输入一个值,它将在D2中输入公式=A2*B2*C2 Option Explicit

我目前在excel中为其他用户提供以下内容

数字列不会更改。用户将在乘数1和乘数2列中输入值,并在结果列中获得值

是否有一种自动方式,用户也可以在结果列中输入一个值,并且乘数1列将发生变化


当前数字和结果列受保护,是否需要取消对结果列的保护

我建议您使用一些VBA代码,使用子工作表\u ChangeByVal目标作为工作表中的范围

如果用户在D2中输入一个值,它将在B2中输入公式=D2/A2*C2 如果用户在B2中输入一个值,它将在D2中输入公式=A2*B2*C2

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.Count > 1 Then Exit Sub
On Error GoTo LastLine
If Not Intersect(Target, Range("D2")) Is Nothing Then
    Range("B2").Formula = "=D2/(A2*C2)"
ElseIf Not Intersect(Target, Range("B2")) Is Nothing Then
    Range("D2").Formula = "=A2*B2*C2"
End If
LastLine:
Application.EnableEvents = True
End Sub

这是可以做到的。首先要注意你的公式非常简单 可以轻松解决乘法器1的以下功能:

结果除以数字乘以乘数2

接下来,添加一个1像素宽的列来包含公式,这会让你变得棘手 对于现在的结果,输入的不是原始的公式 结果栏

类似地,将1像素宽的列添加到包含 您的乘法器1的新公式。调整原始输入的数据验证 用于乘法器1和结果的单元格,以仅允许使用其中一个 一次输入在excel自定义数据中适当使用isblank函数 每个单元格的验证规则

最后,右对齐两个1像素宽的单元格,使其计算值 空白时出现在相应的可输入单元格中。 是的,这很棘手,但很有效

抱歉,这只是一个大纲,但我已经在一个应用程序中使用了它
效果很好。没有vba,因此撤消重做不会中断。试试看,你会喜欢的

我也排除了追求目标的可能性。原因是我正在考虑如何在用户不与消息框交互的情况下实现此功能。