首页 > 解决方案 > 一次显示一个数字的总和

问题描述

作为非专家,我正在使用 VBA 在 Excel 上为孩子们创建数学练习。这个想法是在屏幕上显示数字的总和,例如 3+5+2,但我希望数字一次出现一个,每个数字之间有 2 秒的停顿。此外,出现的每个数字都会替换屏幕上的前一个数字。具体...

我尝试了两种失败的方法:

  1. 使用多个长循环在每个数字之间“浪费”时间

    Range("A1").Value = "3"
    
    for a=1 to 20
    
       for b=1 to 10000
    
          for c=1 to 10000
    
          Next
    
       Next
    
    Next
    
    Range("A1").Value = "'" & "+5"
    
    'etc
    

(我不能写一个像 100000000 这样的大数字,这就是为什么我必须做多个循环)

  1. 使用等待应用程序

    Range("A1").Value = "3"
    
    Application.Wait (Now + TimeValue("00:00:02"))
    
    Range("A1").Value = "'" & "+5"
    
    Application.Wait (Now + TimeValue("00:00:02"))
    
    Range("A1").Value = "'" & "+2"
    
    Application.Wait (Now + TimeValue("00:00:02"))
    
    Range("A1").Value = ""
    

在这两种情况下,该过程都在逐步执行(使用 F8)中工作,但在正常执行时表现得很奇怪......数字大多不出现,有时会出现,我不知道为什么。我尝试了更大的等待值,但数字仍然没有出现。我没有尝试过 sleep 应用程序,因为我想了解这里发生了什么。

如果我的问题写得不好/表述不好,我提前道歉。

标签: excelvbafor-loop

解决方案


这对我有用。

Sub MathGame()
    Dim numberOfInputs As Integer
    
    numberOfInputs = 2
    
    For i = 0 To numberOfInputs
        Range("A1") = Range("A1") & " + " & WorksheetFunction.RandBetween(1, 9)
        Application.Wait (Now + TimeValue("00:00:02"))
    Next i
End Sub

要增加或减少难度,您可以:

  1. 更新numberofInputs
  2. 更新参数RandBetween

推荐阅读