Excel 不使用解算器求解值
我目前在excel中为其他用户提供以下内容 数字列不会更改。用户将在乘数1和乘数2列中输入值,并在结果列中获得值 是否有一种自动方式,用户也可以在结果列中输入一个值,并且乘数1列将发生变化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
当前数字和结果列受保护,是否需要取消对结果列的保护 我建议您使用一些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,因此撤消重做不会中断。试试看,你会喜欢的 我也排除了追求目标的可能性。原因是我正在考虑如何在用户不与消息框交互的情况下实现此功能。