Excel 与在线计算器 - 自动找出未填充的值...如何?

Excel 与在线计算器 - 自动找出未填充的值...如何?

我想知道是否有可能让 Excel 像我见过的一些在线计算器一样运行。例如:

在此处输入图片描述

主要的区别在于,这些设计使得计算器中的每个“单元”都知道是否输入了值 - 然后它将根据其与其他单元的功能关系有条件地计算其值(或没有)。

这个使用“计算”​​按钮,然而也有使用 Excel 风格实时更新的例子,在值不够和/或值矛盾的情况下,他们通常会说明这一点,然而,这不是一个必不可少的功能(目前)。

我曾尝试在 Excel 中使用条件语句实现类似功能,但我发现单元格逻辑变得过于复杂快速地对我的情况没有帮助,因为我正在求解的系统(不是上面的系统)中的值可以通过不同的输入子集计算出来——你可能会说它“过度定义”。

excel是否有一个选项或模式可以快速方便地构建这种风格的界面?

或者,有没有人建过类似的并且愿意分享你的技巧?

这只是为了我自己的生产力(我希望还有其他人的生产力!),我不希望它上线......

答案1

可以在 Excel 工作表中使用 VB 按照如下方式完成此操作

我们知道立方体的体积 = 长度 * 宽度 * 高度

让我们为此制作一个计算器:

给定任意 3,必须找到第 4 个值

创建 Excel 工作表

在 A1、A2、A3 中输入长度、宽度、高度。在 A4 中留空 在 A5 中输入体积

现在使用工具栏创建一个按钮,右键单击该按钮并将文本更改为“ CALCULATE ”,为按钮提供所需的名称。

现在右键单击按钮并将宏分配给此按钮创建按钮单击命令如下:

Sub Button1_Click()

If Range("B1").Value = 0 
Then Range("B1").Value = Range("B5").Value / Range("B3").Value / Range("B2").Value

If Range("B2").Value = 0 
Then Range("B2").Value = Range("B5").Value / Range("B1").Value / Range("B3").Value

If Range("B3").Value = 0 
Then Range("B3").Value = Range("B5").Value / Range("B2").Value / Range("B1").Value

If Range("B5").Value = 0 
Then Range("B5").Value = Range("B1").Value * Range("B2").Value * Range("B3").Value

End Sub

答案2

正如您所发现的,使用工作表单元格执行此操作可能有点棘手。

但使用 VBA 实现这一点相当简单。代码可以放在 Worksheet_Change 事件中,可以将其设置为在四个单元格中的任何一个发生更改时触发。

那么逻辑就很简单:如果恰好三个单元格有值,则找出哪个单元格为空,执行计算并将结果放入该单元格中。

相关内容