今天沟通了一个教师朋友,他想通过WPS表格实现一个题库,就是每次从表格试题库中随机选择一定数量的试题,并且复制到新的sheet中形成一份试卷,这里我简单做了一个例子。

这位朋友的试题库简化后如下图表格所示


简化后的试题库

要求根据知识点得分情况,当得分小于指定分数后,随机从相应知识点的试题库中抽一个题出来,填写到表格的抽题列


组卷效果

这个思路主要是循环试题库,然后判断相应知识点的得分情况,如果得分低于指定分数,则从6个备选试题中随机抽一个填充到抽题列。

代码如下:

function test() { for(var i=0;i<5;i++) { var Score=Application.ActiveSheet.Range('D'+(i+2)).Value() //if(Score<4) //{ Console.log(Score) let arr=['E','F','G','H','I','J'] let random = Math.floor(Math.random()*6) var shiti=Application.ActiveSheet.Range(arr[random]+(i+2)) Application.ActiveSheet.Range('D'+(i+2)).Offset(0,7).Value2=shiti //} } }

最后我们需要把文件另存为xlsm格式,这样才能使用宏。