|
15学分
在SHEET1设置两个按钮
点击第一个按钮显示SHEET2的27个问题中的随机10个
点击第二个按钮将SHEET1中显示的10个题目的答案显示出来
- Dim ArrXti$(), Arr, D As New Dictionary, Dt As New Dictionary
- Sub Xti()
- Dim I&, U&, T&
- With Sheet1
- Arr = .Range("A1:a" & .Cells(.Rows.Count, 1).End(3).Row)
- End With
- For I = 1 To UBound(Arr)
- If Arr(I, 1) Like "[0-9]*" Then
- T = CLng(Left(Arr(I, 1), InStr(1, Arr(I, 1), ".")))
- If Not D.Exists(T) Then D.Add T, I
- End If
- Next I
- I = 0: ReDim ArrXti(1 To 70, 1 To 1): Dt.RemoveAll
- Do While I < 10
- U = Int(Rnd() * D.Count + 1)
- If Not Dt.Exists(U) Then
- Debug.Print D.Count
- ArrXti(I * 7 + 1, 1) = I + 1 & Mid(Arr(D(U), 1), InStr(1, Arr(D(U), 1), "."))
- I = I + 1: Dt.Add U, ""
- End If
- Loop
- Sheet2.[a1].Resize(70) = ArrXti
- End Sub
- Sub GetAnswer()
- Dim Ar, I&, J&, K&, U&(1)
- If Dt.Count > 0 Then
- Ar = Dt.Keys
- For I = 0 To 9
- K = 1: U(0) = IIf(Ar(I) = 1, 2, D(Ar(I)) + 1)
- If Ar(I) = D.Count Then
- U(1) = UBound(Arr)
- Else
- U(1) = D(Ar(I) + 1) - 1
- End If
- For J = U(0) To U(1)
- K = K + 1
- ArrXti(I * 7 + K, 1) = Arr(J, 1)
- Next J
- Next I
- Sheet2.[a1].Resize(70) = ArrXti
- Else
- MsgBox "请先随机题目."
- End If
- End Sub
复制代码
11.zip
(16.37 KB, 下载次数: 13)
|
|