不好意思 又把那個自己的寫的遊戲程式修改
'我把它改成在TB1輸入完按下enter鍵才去執行TB1_change的程式
'我TB1是textbutton 可輸入文字框
Private Sub TB1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If keycode = 13 Then
TB1_change
End If
End Sub
Private Sub TB1_change()
Sheets("玩家資料").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1
For i = lastrow To 2 Step -1
If Cells(i, "A") = TB1.Text Then
Range("A" & i).Activate
L1.Caption = Cells(i, "B")
End If
Next
End Sub
然後我執行 輸入玩家資料有的玩家JOHN
我還沒按enter鍵VBA就自動執行TB1_change
這是怎回事 請大家知道問題在哪裡的 抽空指教一下 多謝
捕捉Enter
鍵要用KeyDown
事件,不能用KeyPress
事件。
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then Call mySub
End Sub
Private Sub mySub()
Sheets("玩家資料").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1
For i = lastrow To 2 Step -1
If Cells(i, "A") = TB1.Text Then
Range("A" & i).Activate
L1.Caption = Cells(i, "B")
End If
Next
End Sub
另外,你的TB1_KeyPress
程序應該只認識KeyAscii
變數,不認識KeyCode
變數。
TB1是textbutton 可輸入文字框
做文字輸入時,就會同時會觸發TB1_change事件