ある範囲のOnKeyイベントを定義する方法は? - excel、vba、excel-vba

特定のセルにエスケープボタンのOnKeyイベントを定義したい

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Value = "a" Or ActiveCell.Value = "b" Then
Application.OnKey "{ESC}", "unit"

エラーポップアップが表示された - マクロが使用できないか、無効になっています...
サブユニット()はスタンドアロンのプロシージャとして機能します。

回答:

回答№1は2

明示的な参照が私のために働く、Sheet6.unitのようなシートname.subnameを使用してみてください:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Debug.Print ActiveCell.Value
If ActiveCell.Value = "d" Or ActiveCell.Value = "e" Then
Application.OnKey "{ESC}", "Sheet6.unit"
Else
Application.OnKey "{ESC}", ""
End If
End Sub


Public Sub unit()
Debug.Print "Unit!"
End Sub

メニュー
最も人気のある