Excel VBA Application.OnKey

时间:2017-03-09 18:02:31

标签: excel vba excel-vba

当我按下回车键时,我正在使用以下命令运行宏“SQL”。

Private Sub Workbook_Open()

Application.OnKey "~", "SQL"

End Sub

但是,我只想在第1列(A列)中运行宏“SQL”。 一旦宏运行,我的活动单元格在第9列(第I列)中,当我按下此列中的回车键时,我想运行第二个宏?

我尝试了以下操作,但宏“SQL”尝试同时为第1列和第9列运行?

Private Sub Workbook_Open()

If ActiveCell.Column = 1 Then    
    Application.OnKey "~", "SQL"    
Else    
    Application.OnKey "~", "SCAN_MEZBOX"    
End If

End Sub

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

将您的“智能”放在 SQL()宏中:

Sub SQL()
    Dim C As Long
    C = ActiveCell.Column

    If C = 1 Then
        'do something
    ElseIf C = 9 Then
        'do something else
    Else
        Exit Sub
    End If
End Sub

答案 1 :(得分:0)

您应该根据工作表中的位置编写一个"调度" 到适当例程的中心例程。

Private Sub Workbook_Open()
    Application.OnKey "~", "Dispatch"
End Sub

Private Sub Dispacth()
    Select Case ActiveCell.Column
         Case 1
             SQL
         Case 9
             SCAN_MEZBOX
         ' Add other cases if necessary
         Case Else
    End Select
End Sub