问题1:  书上的例子 106页 例5-9 小学生做加减法的算术练习程序,计算机连续地随即给出两位数的加减法算术题,要求学生回答, 答对的打对号, 错的打叉,将做过的 题目存放在列表框中备查,并随时给出答题的正确率 。
 我写的程序
Private Sub Form_Activate()
Randomize (Time)
a = Int(10 + 90 * Rnd)
b = Int(10 + 90 * Rnd)
p = Int(2 * Rnd)
Select Case p
  Case 0
    Label1.Caption = a & " + " & b & "="
    Text1.Tag = a + b
  Case 1
    If a < b Then t = a: a = b: b = t
    Label1.Caption = a & "-" & b & "="
    Text1.Tag = a - b
End Select
Form1.Tag = Form1.Tag + 1
Text1.SelStart = 0
Text1.Text = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
fm = "!@@@@@@@@@@@@@@"
If Val(Text1.Text) = Text1.Tag Then
  Item = Format(Label1.Caption & Text1.Text, fm) & "@"
  List1.Tag = List1.Tag + 1
Else
  Item = Format(Label1.Caption & Text1.Text, fm) & "!"
End If
List1.AddItem Item, 0
Label2.Caption = "共" & Form1.Tag & "题," & Chr(13) & "正确率为:"
Label3.Caption = Format(List1.Tag / Form1.Tag, "#0.0#%")
Form_Activate
End If
End Sub
在上部分运行就出错 , 是怎么回事啊。 
还有那个对号和错号在哪里找啊问题2 : 关于定义变量问题 ,  说是可以不定义变量
如果没定义变量就应该先定义呀!!VB也可以允许不定义变量,不过会影响速度!!
把代码最开始的Option Explicit去掉,可以不定义变量!!
但我用这种方法根本不行啊, 
把Option Explicit 去掉, 有很多程序不行的