Application.OnKey在excel中不起作用?

时间:2016-07-13 16:32:59

标签: excel vba

我正在使用Application.OnKey "%x", "myMacro"运行宏。但现在它不起作用,有没有任何理由不起作用? 此外,如果我想更改它并使用ALT + SHIFT + "x"它是"%+x"吗?我试过了,但仍然没有用。任何想法?

2 个答案:

答案 0 :(得分:1)

显然有点晚了,但是由于我花了很多谷歌搜索才能找到答案,这可能有助于让其他人更有可能在将来遇到答案。

我没有编程背景,我想要的只是让Ctrl+Shift+V粘贴复制单元格的格式,就像在Word中一样。以下应该有效,但不会:

Sub pfkey()
    Application.OnKey "^+v", "pformat"
End Sub

Sub pformat()
' Pastes the formatting of a copied selection

    Selection.PasteSpecial paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

尽管语法正确,但只有在您第一次“运行”模块时才会有效。我做的是:

  1. 选择包含pfkey()子程序
  2. 的模块
  3. F5
  4. 在对话框中再次选择 pfkey
  5. 点击运行
  6. Bam - 工作代码。

    Where I found the answer: “运行宏后,将分配键组合。”

答案 1 :(得分:0)

从@Zoraal中获取提示,我发现您可以创建一个包含任何/所有application.onkey要求的Auto_Open()子。这将"激活"他们在启动excel时你不需要每次都手动运行模块。

我使用个人工作簿方法(discussed here)来存储我的所有宏。我只是创建了一个名为shortcuts的模块,并放入以下子例程:

Sub Auto_Open()
    Application.OnKey "{yourshortcuthere}", "yoursub"
    Application.OnKey "{yourothershortcuthere}", "yourothersub"
End Sub

参考宏可以包含在多个其他模块中。