2014-06-23 202 views
1

在單元格中輸入內容後按下回車鍵時是否可以激活按鈕?按「Enter」鍵激活按鈕

我有一個搜索功能,您可以在單元格(C9)中輸入搜索字符串,並且在按下按鈕時可以激活該功能。但是如果你編輯了一個單元格,我想在按下回車鍵時激活它。

所以我僞碼我想到的是:

If enterKey Is Activated Then 
    If cursor Is in Range("C9") Then 
     FindWords(parameter 1, parameter 2...) 
    End If 
End If 
+0

看看這個:http://stackoverflow.com/questions/9377237/如何-可以-I-限定進入-的keyPressed事件換一個-動態選擇細胞功能於VBA換 – EvenPrime

回答

0

說,我們要檢測件事:

  1. 細胞C9得到改變
  2. 輸入關鍵用於此更改

標準模塊輸入:

Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 

Public Function WhichKey() As String 

    If (GetAsyncKeyState(vbKeyTab)) Then 
      WhichKey = "Tab" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyTab)) Then 
      WhichKey = "Tab" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyDown)) Then 
      WhichKey = "Down Arrow" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyUp)) Then 
      WhichKey = "Up Arrow" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyRight)) Then 
      WhichKey = "Right Arrow" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyLeft)) Then 
      WhichKey = "Left Arrow" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyReturn)) Then 
      WhichKey = "Enter" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyRButton)) Then 
      WhichKey = "Right Click" 
      Exit Function 
    End If 
    If (GetAsyncKeyState(vbKeyLButton)) Then 
      WhichKey = "Left Click" 
      Exit Function 
    End If 
End Function 

,並在工作表代碼區輸入:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Intersect(Range("C9"), Target) Is Nothing Then Exit Sub 
    If WhichKey() <> "Enter" Then Exit Sub 
    Application.EnableEvents = False 
     Call FindWords() 
    Application.EnableEvents = True 
End Sub