名字验证的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 19:29:04
代码:
Dim name1

Private Sub Command1_Click()
Dim t As Integer
t = checkname(Text1.Text)
If t = 1 Then
MsgBox "fuck", vbCritical + vbOKOnly, "msg"
Else
MsgBox "i fuck you", vbCritical + vbOKOnly, "msg"
End If
End Sub

Private Sub Form_Load()
name1 = Array("132", "456", "789")
End Sub
Function checkname(na As String) As Integer
Dim i As Integer, flag As Integer
flag = 1
For i = LBound(name1) To UBound(name1)
If Text1.Text = name1(i) Then t = 0
Next i
End Function
不知哪里写错.运行之后点全都是i fuck you 也就是T=0.难道我的遍历数组出问题?
试过把t放到通用里.也没用.好像是循环出了问题.

问题找到了,是函数checkname有问题,下面是修改后的代码:

Dim name1

Private Sub Command1_Click()
Dim t As Integer
t = checkname(Text1.Text)
If t = 1 Then
MsgBox "fuck", vbCritical + vbOKOnly, "msg"
Else
MsgBox "i fuck you", vbCritical + vbOKOnly, "msg"
End If
End Sub

Private Sub Form_Load()
name1 = Array("132", "456", "789")
End Sub

Function checkname(na As String) As Integer
Dim i As Integer, flag As Integer
flag = 1
checkname = 1
For i = LBound(name1) To UBound(name1)
If na = name1(i) Then checkname = 0: Exit For
Next i
End Function

Private Sub Command1_Click()
Dim t As Intege
...
End Sub

你的t在command里面定义,每次都是0,当然进else了

大哥你设两个断点,单步调试一下。你就能明白你错在哪了。就知道应该怎么改了