VBA OnKey 并传递一个变量
VBA OnKey And Pass a Variable
我正在尝试让 OnKey 事件触发子程序并将变量传递给该子程序。用按钮触发 sub 效果很好(这些都在 Module1 中):
Sub button77()
scanner (1)
End Sub
Sub scanner(keyscan As Integer)
Debug.Print keyscan
End Sub
同样有效的是在没有变量的情况下触发子程序(第一部分在工作表上,第二部分仍在模块 1 中):
Private Sub Worksheet_Activate()
Application.OnKey "1", "scanner"
End Sub
Sub scanner()
Debug.Print "TEST"
End Sub
但我无法使以下内容正常工作:
Private Sub Worksheet_Activate()
Application.OnKey "1", "scanner(1)"
End Sub
Sub scanner(keyscan As Integer)
Debug.Print keyscan
End Sub
它给了我“参数不是可选的”。我尝试将 OnKey 的过程格式化为各种迭代 - 例如
Application.OnKey "1", "'scanner" & 1 & "'"
和其他人,尝试使用字符串,但无论我尝试什么,它都不起作用。有人知道这是怎么回事吗?
您在参数前缺少 space:
Application.OnKey "1", "'scanner " & 1 & "'"
所以它读作 'scanner 1' 而不是 'scanner1' 这将使代码查找名为 scanner1
.
的例程
我正在尝试让 OnKey 事件触发子程序并将变量传递给该子程序。用按钮触发 sub 效果很好(这些都在 Module1 中):
Sub button77()
scanner (1)
End Sub
Sub scanner(keyscan As Integer)
Debug.Print keyscan
End Sub
同样有效的是在没有变量的情况下触发子程序(第一部分在工作表上,第二部分仍在模块 1 中):
Private Sub Worksheet_Activate()
Application.OnKey "1", "scanner"
End Sub
Sub scanner()
Debug.Print "TEST"
End Sub
但我无法使以下内容正常工作:
Private Sub Worksheet_Activate()
Application.OnKey "1", "scanner(1)"
End Sub
Sub scanner(keyscan As Integer)
Debug.Print keyscan
End Sub
它给了我“参数不是可选的”。我尝试将 OnKey 的过程格式化为各种迭代 - 例如
Application.OnKey "1", "'scanner" & 1 & "'"
和其他人,尝试使用字符串,但无论我尝试什么,它都不起作用。有人知道这是怎么回事吗?
您在参数前缺少 space:
Application.OnKey "1", "'scanner " & 1 & "'"
所以它读作 'scanner 1' 而不是 'scanner1' 这将使代码查找名为 scanner1
.