【问题标题】:Excel keep adding to total [closed]Excel不断增加总数[关闭]
【发布时间】:2015-01-24 09:50:51
【问题描述】:

您好,我一直在寻找 2 天,但我无法弄清楚。我在网上到处看,这个小问题在任何地方都没有答案。我有两个下拉列表。 One list for question and one for answers, when a question is selected the user then chooses an answer.如果它“总是”它的 1 标记,如果它的“有时”它的 0.5 标记。如果问题是两个答案中的任何一个,我在许多单元格中的不同行(最右边)设置了一个电流,它的值是 0.5 或 1。唯一的问题是当用户使用下拉列表进行选择时下一个问题 if 语句现在为 false 并且值回到 0 而不是保存。我希望它在值高于 1 之后保存该值,还是有更好的方法来继续汇总这些答案并仍然保持我的两个下拉列表一起工作?

感谢您抽出宝贵时间查看我的问题,并且迫不及待地想了解如何执行此操作,这让我发疯了。

【问题讨论】:

  • 您是否使用相同的组合框回答相同的问题?链接到同一个单元格?需要 VBA 才能使其正常工作
  • 我不太明白。绿色的“你决心实现你的目标吗”是一个问题列表。蓝色的“始终”是答案列表。因此,由于问题和答案针对第一个问题,您会在右上角看到一个标记。然后,当单击问题并选择不同的问题时,右上角的 1 现在再次变为 0。所以我不能把分数加起来。这是我的洞问题。也感谢您查看我的问题。

标签: excel list sum add


【解决方案1】:

这是为您准备的练习回合,一旦您开始使用它,您就可以在您的工作表中使用它。

问题下拉菜单是 B10,答案是 D10

设置工作表。

添加一些代码。

您现在在工作表模块中

复制并粘贴这段代码。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, x As Range, y
    Set rng = Range("G3:G9")

    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$D$10" Then
        y = IIf(Target = "Answer 1", 1, 2)
        Set x = rng.Find(what:=Target.Offset(, -2), lookat:=xlWhole)
        If Not x Is Nothing Then
            x.Offset(, 1) = y
        End If
    End If

    If Target.Address = "$B$10" Then
        Application.EnableEvents = 0
        Target.Offset(, 2).ClearContents
        Application.EnableEvents = 1
    End If
End Sub

关闭 VBA 编辑器并处理您的电子表格。

公式计算结果

Example Sheet

【讨论】:

  • 好吧,我会试试这个,让你知道。谢谢
猜你喜欢
  • 2014-03-25
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多