2014-06-23 199 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