相关文章推荐
正直的芹菜  ·  wps vba6.3 ...·  3 周前    · 
老实的刺猬  ·  Java - ...·  1 年前    · 
安静的领结  ·  CVE-2020-15257 ...·  1 年前    · 
'我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 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
End Sub

另外,你的TB1_KeyPress程序應該只認識KeyAscii變數,不認識KeyCode變數。