很簡單的
看要用循序比對
還是
旗標紀錄
還是
使用ComboBox方式
<循序比對>
就是 除了自己外依序比對
自己是否已出現過
假設使用的 TextBox(名稱暫稱為 CodeNumberText) 是一序列的 Index從 1 到 6
語法:
For i = 1 To 6
If i <> Index Then
If StrComp(CodeNumberText(i).Text, CodeNumberText(Index).Text) = 0 Then
MsgBox "號碼已選過,請重新輸入沒選過的號碼", vbOKOnly, "錯誤"
CodeNumberText(Index).Text = ""
End If
End If
Next
<旗標紀錄>
先初始宣告一陣列
Dim IsUse(1 to 38) As Boolean
如果輸入 30號則
IsUse(30) = True
而在輸入前...
語法:
If IsUse(Index) = True Then
MsgBox "號碼已選過,請重新輸入沒選過的號碼", vbOKOnly, "錯誤"
CodeNumberText(Index).Text = ""
End If
<ComboBox>
需配合前面其一方法
比如旗標紀錄
語法:
Dim IsUse(1 To 38) As Boolean
Private Sub CodeNumberCombo_GotFocus(Index As Integer)
CodeNumberCombo(Index).Clear
For i = 1 To 38
If IsUse(i) = False Then CodeNumberCombo(Index).AddItem CStr(i)
Next
End Sub
'為了不讓使用者鍵入 (如此只能使用下拉式選擇)
Private Sub CodeNumberCombo_KeyUp(KeyCode As Integer, Shift As Integer)
CodeNumberCombo.Text = ""
End Sub