【发布时间】:2014-03-25 15:18:23
【问题描述】:
我在 excel 中有三个单元格。它们的总和必须始终为 1。当用户输入任何两个单元格时,例如0.2 和 0.4,我希望第三个单元格自动填充(在本例中为 0.4),以便三个单元格的总和为 1。
希望这很清楚。 谢谢。
【问题讨论】:
-
如果单元格中有公式,当用户输入值时它们将被覆盖,因此您需要在 Worksheet_Change 中运行一些 VBA 来确定如何将其加起来。
我在 excel 中有三个单元格。它们的总和必须始终为 1。当用户输入任何两个单元格时,例如0.2 和 0.4,我希望第三个单元格自动填充(在本例中为 0.4),以便三个单元格的总和为 1。
希望这很清楚。 谢谢。
【问题讨论】:
对于单元格 A1、B1 和 C1,请尝试以下小事件宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RW As Range
Set RW = Range("A1:C1")
If Intersect(Target, RW) Is Nothing Then Exit Sub
If Application.WorksheetFunction.CountA(RW) <> 2 Then Exit Sub
fillin = 1 - Application.WorksheetFunction.Sum(RW)
For Each r In RW
If r.Value = "" Then
Application.EnableEvents = False
r.Value = fillin
Application.EnableEvents = True
End If
Next r
End Sub
【讨论】:
我会建议以下解决方案。您可以对 IF 语句使用不同的公式。
我在这里上传了一张图片:http://postimg.org/image/e559dj55b/
![在红色部分中,您有公式检查单元格 1、2、3 中的值是否为“”,如果是,则要获得 1 的总和,您需要剩余的部分,可以描述为 1 减其他两个单元格][1]
最后只为了获得一行中的数字,您可以获得上述红色或绿色部分之一,并将单元格设置为没有空白区域的值。
希望能为您解决问题!
PS:对不起上面的德国人。 Falsch 表示错误!
【讨论】: