Excel如何做一个自动出题表格?
网友解答: 用Excel做一个自动出题的表格非常简单,上次我在陪儿子参加他们的词汇比赛之前就做了一个简单,即:从一系列单词里,随机提取9个单词放入九宫格内,然后给1分钟的时间记忆……,具
用Excel做一个自动出题的表格非常简单,上次我在陪儿子参加他们的词汇比赛之前就做了一个简单,即:从一系列单词里,随机提取9个单词放入九宫格内,然后给1分钟的时间记忆……,具体如下:
一、准备单词表当然,准备单词表的同时,还可以在Excel里做个网络的解析(这个公式看起来长,其实就是一个函数而已,其中是一长串的网址)和背诵进度的记录等等,如下图所示:
二、通过函数完成出题1、结合RandBetween函数、CountA函数随机获取单词位置,如下图所示:
2、通过Index函数根据随机位置抽取单词,如下图所示:
当然,你可以将这些函数组合起来写成一个公式,也非常简单,自己动手试一下即可。总的来说,用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