Excel如何做一個自動出題表格?
網友解答: 用Excel做一個自動出題的表格非常簡單,上次我在陪兒子參加他們的詞匯比賽之前就做了一個簡單,即:從一系列單詞里,隨機提取9個單詞放入九宮格內,然后給1分鐘的時間記憶……,具
用Excel做一個自動出題的表格非常簡單,上次我在陪兒子參加他們的詞匯比賽之前就做了一個簡單,即:從一系列單詞里,隨機提取9個單詞放入九宮格內,然后給1分鐘的時間記憶……,具體如下:
一、準備單詞表當然,準備單詞表的同時,還可以在Excel里做個網絡的解析(這個公式看起來長,其實就是一個函數(shù)而已,其中是一長串的網址)和背誦進度的記錄等等,如下圖所示:
二、通過函數(shù)完成出題1、結合RandBetween函數(shù)、CountA函數(shù)隨機獲取單詞位置,如下圖所示:
2、通過Index函數(shù)根據隨機位置抽取單詞,如下圖所示:
當然,你可以將這些函數(shù)組合起來寫成一個公式,也非常簡單,自己動手試一下即可??偟膩碚f,用Excel自動出題并不難,關鍵是對Excel中常用的函數(shù)掌握好。
【私信“材料”直接下載系列訓練材料】 網友解答:您好,看到這個問題我很興奮,因為剛剛自己做了一個簡單的隨機出題的VBA小程序,也是一個VBA小練習,可能對您有幫助,因為無法上傳附件,只能簡要講述用法。如果需要源文件,可以私信我。
1、新建一個EXCEL工作簿,命名為“隨機出題”,將第一個工作表命名為“題庫”,新建一個工作表,命名為“試卷”。具體方法請參見如上動圖。
2、在名為“題庫”的工作表中,A列為編號,B列為英文,C列為中文。將題目對應粘貼進去。在名為“試卷”的工作表A1單元格錄入“題目”二字作為標題。具體方法請參見如上動圖。
3、點擊【開發(fā)工具】→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("請輸入隨機出題數(shù)量", "出題數(shù)量")
If i x Then
MsgBox ("數(shù)量超出題目總數(shù)" & 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