返回目录:excel表格制作
Excel如何做一个自动出题表格?
您好,看到这个问题我很兴奋,因为刚刚自己做了一个简单的随机出题的VBA小程序,也是一个VBA小练习,可能对您有帮助,因为无法上传附件,只能简要讲述用法。如果需要源文件,可以私信我。
1、新建一个EXCEL工作簿,命名为“随机出题”,将第一个工作表命名为“题库”,新建一个工作表,命名为“试卷”。具体方法请参见如上动图。
2、在名为“题库”的工作表中,A列为编号,B列为英文,C列为中文。将题目对应粘贴进去。在名为“试卷”的工作表A1单元格录入“题目”二字作为标题。具体方法请参见如上动图。
3、点击【开发工具】→Visual Basic→右键点击插入模块,将下面的代码复制进去。具体方法请参见如上动图。
Sub 随机出题()
Dim d As Object, arr, rng As Range, arr1, n As Integer, i As Integer, j As Integer, x As Long
Set d = CreateObject("scripting.dictionary")
x = Application.CountA(Sheets("题库").Range("a:a"))
line1: i = InputBox("请输入随机出题数量", "出题数量")
If i > x Then
MsgBox ("数量超出题目总数" & x & ",请重新输入")
GoTo line1
End If
line2: j = InputBox("请输入随机出题类型", "出题类型", "1为英文,2为中文")
If j <> 1 And j <> 2 Then
MsgBox ("输入内容不符合要求,请重新输入")
GoTo line2
End If
Do
d.Item(Application.RandBetween(1, i)) = ""
Loop Until d.Count = i
ReDim arr(1 To d.Count * 2)
For Each arr1 In d.keys
n = n + 1
Set rng = Sheets("题库").Range("a:a").Find(arr1)
arr(n) = n & "、" & rng.Offset(0, j).Value
Next
Rows("2:1048576").Clear
Range("a2").Resize(d.Count * 2, 1) = Application.Transpose(arr)
End Sub
4、关闭VBA编辑器,回到名为“试卷”的工作表,插入任意形状作为启动宏的按钮,选中形状,右键单击,选择指定宏即可。具体方法请参见如上动图。
5、将文件另存为后缀名为.xlsm的格式。具体方法请参见如上动图。
6、具体使用方法如上动图。
如需课件源文件,请私信我o(* ̄︶ ̄*)o
你为什么用excel?
我用Excel主要是用于教学。Excel功能十分强大,在教学上主要有以下应用:
1.绘制函数图像,结合VBA可以绘制动态函数图像。
2.利用Excel的公式迭代,可以求解牛顿迭代法所能求解的问题。
3.可以非常方便的用Excel给孩子出口算题,并且自动对孩子提交的答案判断对错。
4.利用其自带的VBA编程环境,可以对学生进行编程启蒙。
5.用其自动朗读功能,帮助学生记忆单词。