不好意思 又把那個自己的寫的遊戲程式修改
'我把它改成在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事件