vb有关问题紧急求解决
vb问题紧急,求解决
部分程序如下:
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
Next i
End Sub
纠结了很久,老说我NEXT没有for,实在想不出
------解决方案--------------------
部分程序如下:
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
Next i
End Sub
纠结了很久,老说我NEXT没有for,实在想不出
------解决方案--------------------
- VB code
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呀? 代码应该要缩进,否则就会出现你这种情况。