部分程序如下:
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim i, j As Integer
For i = 0 To Label1.Count - 1
If Label1.Item(i).Caption = Chr(KeyAscii) Then
    Image1.Visible = True
    Image1.Top = Label1.Item(i).Top
    Image1.Left = Label1.Item(i).Left - 300
    Label1.Item(i).Top = -500
    If shezhi.sOption1.Value Then
      If shezhi.nOption1.Value Then H = H + 1
      ElseIf shezhi.nOption2.Value Then H = H + 2
      ElseIf shezhi.nOption3.Value Then H = H + 3
    End If
    If shezhi.sOption2.Value Then
      If shezhi.nOption1.Value Then H = H + 2
      ElseIf shezhi.nOption2.Value Then H = H + 3
      ElseIf shezhi.nOption3.Value Then H = H + 4
    End If
    If shezhi.sOption3.Value Then
      If shezhi.nOption1.Value Then
        H = H + 3
      ElseIf shezhi.nOption2.Value Then
         H = H + 4
      ElseIf shezhi.nOption3.Value Then
        H = H + 5
    End If
 
    Label2.Caption = "得分:" & H
    Randomize
   If shezhi.nOption1.Value Then
      j = Int((122 - 97 + 1) * Rnd + 97)
   ElseIf shezhi.nOption2.Value Then
      j = Int((90 - 65 + 1) * Rnd + 65)
   ElseIf shezhi.nOption3.Value Then
   j = Int((126 - 48 + 1) * Rnd + 48)
   End If
   Label1.Item(i).Caption = "" & Chr(j) & ""
End If
If Label1.Item(i).Top > 6250 Then
 If MsgBox("此次游戏结束,重来吗?", vbYesNo, "游戏结束") = vbYes Then
    MsgBox "您现在的得分是:" & H & "分", vbOKOnly, "成绩"
    Unload Me
    shezhi.Visible = True
    Exit Sub
 End IfNext i
End Sub
纠结了很久,老说我NEXT没有for,实在想不出

解决方案 »

  1.   


    Private Sub Form_KeyPress(KeyAscii As Integer)
    Dim i, j As Integer
    For i = 0 To Label1.Count - 1
        If Label1.Item(i).Caption = Chr(KeyAscii) Then
            Image1.Visible = True
            Image1.Top = Label1.Item(i).Top
            Image1.Left = Label1.Item(i).Left - 300
            Label1.Item(i).Top = -500
            If shezhi.sOption1.Value Then
                If shezhi.nOption1.Value Then H = H + 1
                ElseIf shezhi.nOption2.Value Then H = H + 2
                ElseIf shezhi.nOption3.Value Then H = H + 3
            End If
            If shezhi.sOption2.Value Then
                If shezhi.nOption1.Value Then H = H + 2
                ElseIf shezhi.nOption2.Value Then H = H + 3
                ElseIf shezhi.nOption3.Value Then H = H + 4
            End If
            If shezhi.sOption3.Value Then
                If shezhi.nOption1.Value Then
                    H = H + 3
                ElseIf shezhi.nOption2.Value Then
                    H = H + 4
                ElseIf shezhi.nOption3.Value Then
                    H = H + 5
                End If
                Label2.Caption = "得分:" & H
                Randomize
                If shezhi.nOption1.Value Then
                    j = Int((122 - 97 + 1) * Rnd + 97)
                ElseIf shezhi.nOption2.Value Then
                    j = Int((90 - 65 + 1) * Rnd + 65)
                ElseIf shezhi.nOption3.Value Then
                    j = Int((126 - 48 + 1) * Rnd + 48)
                End If
                Label1.Item(i).Caption = "" & Chr(j) & ""
            End If
            If Label1.Item(i).Top > 6250 Then
                If MsgBox("此次游戏结束,重来吗?", vbYesNo, "游戏结束") = vbYes Then
                    MsgBox "您现在的得分是:" & H & "分", vbOKOnly, "成绩"
                    Unload Me
                    shezhi.Visible = True
                    Exit Sub
                End If
            End If
        End If
    Next
    End Sub
    你写少了多少个End If呀?
    代码应该要缩进,否则就会出现你这种情况。