Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将宏ON键分配重置为默认值不适用于录制的宏_Excel_Vba - Fatal编程技术网

Excel 将宏ON键分配重置为默认值不适用于录制的宏

Excel 将宏ON键分配重置为默认值不适用于录制的宏,excel,vba,Excel,Vba,几天前,在Excel 2016中,我在“宏录制器”窗口中错误地将宏指定给了Ctrl+y 现在,我想将Ctrl+y重置为其默认行为 为此,我找到了以下代码: Sub keys_deleteHotKeys() ' https://www.excelcampus.com/vba/keyboard-shortcut-run-macro/ Application.OnKey "^y", "" Call Application.OnKey("^y") End Sub 不幸的是,上述子

几天前,在Excel 2016中,我在“宏录制器”窗口中错误地将宏指定给了Ctrl+y

现在,我想将Ctrl+y重置为其默认行为

为此,我找到了以下代码:

Sub keys_deleteHotKeys()
   ' https://www.excelcampus.com/vba/keyboard-shortcut-run-macro/
    Application.OnKey "^y", ""
    Call Application.OnKey("^y")
End Sub
不幸的是,上述子项无效


与VBA
应用程序相比,excel在“宏录制器”窗口中执行宏到键的分配时是否采用了不同的处理方式。OnKey
分配?

在“开发人员”功能区选项卡的“宏列表”菜单中,选择相应的宏,然后
选项…
并删除您设置的快捷方式。

宏录制器始终为指定的热键包含一个隐藏的成员属性,IDE中没有任何内容可以修改或以其他方式操作它。您可以导出代码文件,编辑它(删除隐藏的
属性
行),然后将其重新导入到VBA项目中。。。但这真是一件让人头疼的事

获取(我管理的免费开源VBIDE加载项项目),然后您可以执行以下操作:

'@ExcelHotkey("y")
Public Sub MyAwesomeMacro()
    'do stuff...
End Sub
然后,当您记录宏并指定热键(通过静态代码分析;有关所有详细信息,请参阅)时,该注释/注释可以转换为Excel使用的隐藏成员属性

小写字母“y”使热键Ctrl+y。如果希望热键为Ctrl+Shift+y,只需将其设为大写“y”:

这种方法的优点很多:

  • 没有要操纵的隐藏成员属性
  • 无需导出/编辑/导入任何内容
  • 隐藏的成员属性将显示/记录
  • 不需要任何
    应用程序。OnKey
    黑客
  • 每当属性和注释不一致时,您就会得到一个检查结果,只需单击一次即可同步这些值
如果您只想删除热键属性,那么只需运行代码检查;Rubberduck将告诉您何时存在没有相应注释的隐藏属性,然后您可以决定是删除该属性还是添加相应注释



注意:该功能完全可以满足OP的需要(删除隐藏属性),但是a,因为添加隐藏属性在v2.4.1.5170中被破坏。

那么您已经删除了宏的快捷方式了吗?
'@ExcelHotkey("Y")
Public Sub MyAwesomeMacro()
    'do stuff...
End Sub