Excel VBA Application.OnKey

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

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

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

我尝试了以下,但macros“SQL”试图运行列1和列9?

 Private Sub Workbook_Open() If ActiveCell.Column = 1 Then Application.OnKey "~", "SQL" Else Application.OnKey "~", "SCAN_MEZBOX" End If End Sub 

任何人都可以帮我吗?

把你的“聪明”放在SQL()macros中:

 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 

你应该写一个中央程序,根据你在工作表中的位置“分派”到适当的程序。

 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