如何将连接到多个微调器的单元格限制为微调器链接的单元格中的值的总和?

问题描述 投票:0回答:1

我有5个连接5个细胞的微调器。当5个单元格的总和达到一定值时,旋转器是否可能停止工作?

即在减少另一个细胞之前无法进一步增加任何细胞。

excel vba
1个回答
0
投票

看看这是否适用,它有点hacky但是做的工作。确保你遵循所有步骤,否则你会遇到问题。

在您的工作簿中,将此代码添加到新模块中......

Public Sub Spinner1Change()
    SpinnerChange "Spinner1"
End Sub

Public Sub Spinner2Change()
    SpinnerChange "Spinner2"
End Sub

Public Sub Spinner3Change()
    SpinnerChange "Spinner3"
End Sub

Public Sub Spinner4Change()
    SpinnerChange "Spinner4"
End Sub

Public Sub Spinner5Change()
    SpinnerChange "Spinner5"
End Sub

Sub SpinnerChange(ByVal strSpinnerName As String)
    Dim bEnabled As Boolean, strLinkedCell As String, objSheet As Worksheet

    Set objSheet = Worksheets("Sheet1")

    If Range("rngCurrentValue") > Range("rngMaxValue") Then
        strLinkedCell = objSheet.Shapes(strSpinnerName).ControlFormat.LinkedCell
        objSheet.Range(strLinkedCell) = objSheet.Range(strLinkedCell) - 1
    End If
End Sub

将“Sheet1”更改为您的微调器存在的工作表的名称。

现在在你的工作表中......

Worksheet

..创建2个命名范围:

  • rngCurrentValue(在我的示例中链接到单元格H2)
  • rngMaxValue(在我的示例中链接到单元格D2)

使用您的微调器,为每个微调器命名,我称之为Spinner1,Spinner2,Spinner3等,并将它们链接到所需的单元格......

Spinner Configuration

输入最大值(如单元格D2中所示),然后旋转到它,它应该导致最后一次旋转减少到它的先前值。

没有错误检查,但你可以自己解决,我觉得这是公平的。

如果您有更好的解决方案,请随意接受。 :-)

© www.soinside.com 2019 - 2024. All rights reserved.