用EXECEL的VBE编写小学混合加减法自动习题集

您所在的位置:网站首页 小学加减法运算公式 用EXECEL的VBE编写小学混合加减法自动习题集

用EXECEL的VBE编写小学混合加减法自动习题集

2024-07-09 09:56| 来源: 网络整理| 查看: 265

     用EXECEL的VBE编写小学混合加减法自动习题集

  虽然不用VBE也能够只用EXECEL表格做出加减法自动习题。但是有一个弊端,只要在表格任意单元格上按了回车键,或者退格键,整个表格都会刷新,因此根本不适合在电脑上答题,而只能把表格打印出来手填答题。

    因此,考虑用VBE编写一个。

    对于小学一年级的小朋友来说,要限制在20以内的加减法运算,因此程序上要做一定的边界值判断。别的不多说了,先上图。

上图中只有I列要写算法表达式,J列则要把字体设置成白色(上图为了给大家查看方便,是设置成了黑色).其它各列都不用做任何修改。

以第3行为例,I列的算法表达式为:=IF(H3="","?",IF(H3=J3,"正确","不对")),意思很明显,就不解释了。

完成以上工作之后,打开VB控件,选择“按钮”控件。把标题改为“出题"(见上图).

然后在VBE的编程界面,输入如下代码:

Private Sub CommandButton1_Click()Dim a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer, a5 As IntegerDim b1 As Integer, b2 As String, b3 As Integer, b4 As StringRandomize '对随机数生成器做初始化Range("H3:H23") = "" '先清除以前的结果.循环5次,所以这里是H3:H7n = 20 '设定计算结果在这个值以内For i = 1 To 20 '一次出20道题a1 = Int(Rnd() * (n - 10)) + 1 + 9 '生成1至N的整数 b1 = Int(Rnd() * 2) + 1 '生成1到2的整数,对应加减乘除符号If a1 < 10 Then b1 = 1  '+If a1 > (n - 2) Then b1 = 210: a2 = Int(Rnd() * n) + 1 '生成1至n的整数'下面是求值过程,如果值大于n,就返回上面第10语句行重新取数'加法If b1 = 1 Then b2 = "+": a2 = Int(Rnd() * (n - a1)) + 1: a3 = a1 + a2:'减法If b1 = 2 Then b2 = "-": If a1 > a2 Then a3 = a1 - a2'避免计算结果为负数If a2 > a1 Then t = a1: a1 = a2: a2 = t: a3 = a1 - a2 'A3保存中间计算结果b3 = Int(Rnd() * 2) + 1If a3 < 10 Then b3 = 1:If a3 > (n - 2) Then b3 = 2:20: a4 = Int(Rnd() * n) + 1 '生成1至n的整数'下面是求值过程,如果值大于n,就返回上面第20语句行重新取数'加法If b3 = 1 Then b4 = "+": a4 = Int(Rnd() * (n - a3)) + 1: a5 = a3 + a4:'减法If b3 = 2 Then b4 = "-": a4 = Int(Rnd() * a3) + 1: a5 = a3 - a4:'避免计算结果为负数'显示到表格中Cells(i + 2, 1) = i: Cells(i + 2, 2) = a1: Cells(i + 2, 3) = b2: Cells(i + 2, 4) = a2: Cells(i + 2, 5) = b4: Cells(i + 2, 6) = a4: Cells(i + 2, 7) = "=" '列出算式'写入答案到第10列中,即J列中。Cells(i + 2, 10) = a5NextEnd Sub

点击保存.这个小工具就做好了.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3