我想撰寫一個像這樣作業的教育宏:
該宏在 A1 中寫了一個問題,例如“請在單元格 B1 中寫下 5 加 6 的值”。
然后用戶在單元格 B1 中寫入 11,然后單擊一個按鈕。
宏在單元格 C1 中以“正確”回應,并在 A2 中寫入下一個問題。
通過這種方式,電子表格顯示了所有過去的問題和答案。
是否有可能做到這一點 - 在用戶填寫一些文本時讓宏暫停,然后一個按鈕取消暫停它,以便它從停止的地方繼續?
非常感謝!
uj5u.com熱心網友回復:
如果我對您的理解正確并且您不介意使用用戶表單,那么也許您可以嘗試使用以下內容:

在 Sheet2 中準備問題和答案,類似于上圖。
您可能希望將所有字體設定為白色,保護作業表并將其隱藏。
然后將 Sheet1 作為測驗所在的位置,類似于下面的影片:

創建一個用戶表單
在其上制作一個按鈕和一個文本框。
子:
Dim oFill As Range: Dim cnt As Long:
Dim rgQdata As Range: Dim rgQ As Range
Private Sub UserForm_Initialize()
CommandButton1.Caption = "NEXT"
Set rgQdata = Sheets("Sheet2").Range("A2")
Set rgQ = ActiveSheet.Range("A2")
rgQ.Value = rgQdata.Value
End Sub
Private Sub TextBox1_Change()
rgQ.Offset(0, 1).Value = TextBox1.Value
End Sub
Private Sub CommandButton1_Click()
If rgQ.Offset(0, 1) = rgQdata.Offset(0, 1) Then
rgQ.Offset(0, 2).Value = "correct"
Else
rgQ.Offset(0, 2).Value = "incorrect"
End If
TextBox1.SetFocus
Set rgQdata = rgQdata.Offset(1, 0)
If rgQdata.Value <> "" Then
Set rgQ = rgQ.Offset(1, 0)
rgQ.Value = rgQdata.Value
TextBox1.Value = ""
Else
Unload Me
End If
End Sub
Initialize 將為資料單元格 (Sheet2) 中的第一個問題創建一個范圍作為 rgQdata 變數,并將第一個問題的范圍作為 rgQvariable。然后它從 rgQdata 值中放入 rgQ 值。
當用戶在 TextBox1 中輸入答案時,
它將用他輸入的內容填充 rgQ.offset(0,1)。
用戶需要點擊 NEXT 按鈕才能看到他的結果。
當用戶單擊 NEXT 按鈕時,子檢查 rgQ.Offset(0, 1) 值是否與 rgQdata.Offset(0, 1) 值相同。如果相同,則輸入“正確”,如果不相同,則在 rgQ.offset(0,2) 單元格中輸入“不正確”。
然后它通過將 rgQdata 和 rgQ 都向下偏移一個單元格來提出下一個問題。它還檢查 rgQdata 中是否沒有值,然后卸載用戶表單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/494344.html
