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

标签: