让EXCEL自动出题
1、表格的样子如下图:
2、第一步:制作表格
3、可按上图样子做出一个表格,其中的B到E列是电脑自动填入的,不用管。F列是让孩子输入答案的地方,输入答案后会马上在G列显示“正确”或“不对”的提示。
4、表格中的H列是由电脑生成的答案,做检查时会用到,平时使用时应该把它隐藏起来。隐藏H列的方法是,用鼠标右键点击表格上H列的“列标”,会弹出快捷菜单,从中选“隐藏”就可使H列隐藏起来。
6、第二步:输入公式这个表中唯一有公式的地方是G列,在G3单元格输入下面公式:=IF(F3="","?",IF(F3=H3,"正确","不对"))
7、这个公式中用了两个I掂迎豢畦F函数嵌套,先判断F3单元格是否为“空”,即是否填入了答案,如果没填入答案就显示一个“?”符号。如果F3单元格中填入答案了,就判断这个答案跟H3单元格(由电脑生成的答案)是否相等,然后给出“正确”或“不对”的提示。
8、G3单元格公式输入后,就可以用鼠标向下拖动复制到蘅荫酸圉G列的下面各单元格中(G4:G7单元格)。上面这些步骤完成后,就可以做VBA部份了,大家可以不必太在意这些代码的含义,只要会使用它就行了。
9、第三步:编写代码在当前工作表标签上按鼠标右键,选“查看代码”,打开当前表格的VBA窗口。
10、把代码粘贴到打开的空白窗口中
11、Sub 出题()Dim a1 As Integer, a2 As IntegerDim b1 As Inte爿讥旌护ger, b2 As StringRandomize ’对随机数生成器做初始化Range("f3:f7") = "" ’先清除以前的结果n = 100 ’设定计算结果在这个值以内For i = 1 To 5 ’一次出五道题b1 = Int(Rnd() * 4) + 1 ’生成1到4的整数,对应加减乘除符号10:a1 = Int(Rnd() * 100) + 1 ’生成1至100的整数a2 = Int(Rnd() * 100) + 1 ’生成1至100的整数’下面是求值过程,如果值大于100,就返回上面第10语句行重新取数’加法If b1 = 1 Then b2 = "+": a3 = a1 + a2: If a3 > n Then GoTo 10’减法If b1 = 2 Thenb2 = "-"If a1 > a2 Then a3 = a1 - a2’避免计算结果为负数If a2 > a1 Then t = a1: a1 = a2: a2 = t: a3 = a1 - a2End If’乘法If b1 = 3 Then b2 = "×": a3 = a1 * a2: If a3 > n Then GoTo 10’除法If b1 = 4 Thenb2 = "÷"If a1 > a2 Then a3 = a1 / a2’避免计算结果为小数If a1 < a2 Then t = a1: a1 = a2: a2 = t: a3 = a1 / a2If a3 <> Int(a3) Then GoTo 10End If’显示到表格中Cells(i + 2, 2) = a1: Cells(i + 2, 3) = b2: Cells(i + 2, 4) = a2: Cells(i + 2, 5) = "=" ’列出算式’写入答案到第八列中,即H列中。Cells(i + 2, 8) = a3NextEnd Sub
12、上面的代码通过生成随机数达到自动出题的目的,由变量b1来确定加减乘除的运算符号。
13、由于是小学生的四则运算,计算结果不能是负数与小数,所以在减法与除法的过程中要用IF函数进行判断,不符合要求时就返回第十语句行重新取数。
14、该代码可生成1-100范围内的数据,并让计算结果也在100以内,如果你想自己设定范围,可改变相关参数。
15、第四步:添加按钮现在回到EXCEL窗口,还要再添加一个按钮来执行这个代码。
16、按“视图-工具栏-窗体”,调出“窗体”工具栏,选中其中的“按钮”控件,在屏幕上“画”出一个大小适中的按钮。
17、提示:添加按钮的方法有很多,例如还可以用“绘图”工具栏中的各种“形状”、“艺术字”等,这些都可以“指定宏”来达到运行代码的目的。
18、然后用鼠标右键点击这个按钮的边沿,在快捷菜单中选“指定宏”,这时会弹出一个“宏”对话框,从中选“出题”这个宏,确定即可。
19、所有这些完成后就可以使用了,每按一次按钮,可生成5个算式。如果你想生成更多的算式,可以改变代码中循环变量 i 的终值。