【问题标题】:Summing Textbox Values对文本框值求和
【发布时间】:2022-04-14 16:26:17
【问题描述】:

我正在为 PowerPoint 中的特定幻灯片编写 VBA 脚本。在演示模式下,用户将在 5 个文本框中输入数值。我希望 TextBox6 自动填充 TextBox1-TextBox5 的总数。

我的问题是幻灯片不会自动更新。如果我停止演示模式并按下“查看代码”中的运行按钮,它将用总数更新幻灯片。当用户在演示模式下浏览幻灯片时,有没有办法发生这种情况?

Private Sub TextBoxesSum()
    Dim Total As Double
    Total = 0
    If Len(TextBox1.Value) > 0# Then Total = Total + CDbl(TextBox1.Value)
    If Len(TextBox2.Value) > 0# Then Total = Total + CDbl(TextBox2.Value)
    If Len(TextBox3.Value) > 0# Then Total = Total + CDbl(TextBox3.Value)
    If Len(TextBox4.Value) > 0# Then Total = Total + CDbl(TextBox4.Value)
    If Len(TextBox5.Value) > 0# Then Total = Total + CDbl(TextBox5.Value)
    TextBox6.Value = Total
    TextBox6.Value =  Format(TextBox6.Value, "Standard")
End Sub

Private Sub TextBox6_Change()
    TextBoxesSum
End Sub

【问题讨论】:

  • 您需要删除 TextBox6_Change() 并为每个 TextBox 写入 TextBox1_Change() .. TextBox5_Change() 事件,您只需在每个 TextBoxesSum() 中调用。
  • 感谢您的回复。但是,我有点困惑你的评论。因此,如果我理解正确,脚本的顶部没问题,但我需要在开头的行进行更改:Private Sub TextBox6_Change。我是否简单地为文本框 1 - 5 编写? Private Sub Textbox1_Change() TextBoxesSum End Sub
  • 是否有更简单的方法来添加 TextBox1-TextBox5 并将其显示在 TextBox6 中。我写道: Private Sub TextBox6_Sum() TextBox6 = Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text) + Val(TextBox4.Text) + Val(TextBox5.Text) End Sub 这返回正确的仅当您选择脚本并按下播放按钮时才会显示。有没有办法在代码中添加运行宏或其他东西? TIA
  • 下面我的回答解决了你的问题吗?如果是这样,请考虑单击我的答案旁边的勾号,绿色。如果没有,请告知原因。

标签: vba textbox powerpoint


【解决方案1】:

删除(即删除、取出)

Private Sub TextBox6_Change()
TextBoxesSum
End Sub

然后在设计视图中双击每个TextBox1 .. TextBox5。这将创建 5 个事件骨架,例如

Private Sub TextBox1_Change()

End Sub

在每个骨架中,您都编写了对 TextBoxesSum 的调用

    TextBoxesSum

这很容易,不是吗?

您不需要对 TextBoxesSum 子代码进行任何更改(尽管您可以删除几行,但我们不要混淆 :))

【讨论】:

  • 成功了,谢谢!
  • @Justin,当有人发布解决您问题的答案时,请给他们一个支持。这就是让这个地方保持运转的原因。
  • 谢谢,@John ,... 或者,如果您还没有足够的声望来投票,您无论如何都可以单击答案旁边的勾号变为绿色,以表示答案是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 2018-09-02
  • 2014-05-20
  • 2016-03-28
相关资源
最近更新 更多