我在 Windows 8.1 上使用 MS Excel 2013,并且正在使用这个 AutoHotKey 脚本...
$^+z::
SetKeyDelay -1
Send {RCtrl Down}y{RCtrl Up}
将“Ctrl Shift Z”重新映射为“Ctrl Y”,以便执行...编辑 >> 重做,在某些使用“Ctrl Y”执行此操作的 Windows 程序中。因此,当我在这些程序中按下“Ctrl Shift Z”时,AHK 会发送“Ctrl Y”,然后我就会收到重做命令。
但在 Excel 中,只有当我处理 *.xlsx 时它才有效,当我处理 *.xlsb 时则无效,如果我在 *.xlsb 上按“Ctrl Shift Z”,它根本不起作用。这是为什么?
答案1
尝试将发送语句更改为 ^y。
$^+z::Send ^y
如果 Excel 认为Shift+Ctrl+y
按下了某个键,它可能会发出哔哔声,如果您按住 Shift 键作为第一个修饰键,然后{RCtrl Down}
明确发送,可能会出现这种情况。
如果 AutoHotkey 知道您正在发送一个组合键,它将自动为您撤消/重做修饰键,但也许因为您发送了一个明确的 RCtrl Down,它不会为您执行此操作,而 Excel 可能只是看到Shift+Ctrl+z
并发出哔哔声。
答案2
尝试这个:
$^+z::
SetKeyDelay -1
Send {RCtrl Down}
Send y
Send {RCtrl Up}
return