Win-XP / Excel 2003 / VBA ....
我有以下代码拦截用户发起的所有粘贴活动(主菜单,上下文菜单和控制-V键)并将其发送到Sub TrappedPaste()
....
Application.CommandBars("Edit").Controls("Paste").OnAction = "TrappedPaste"
Application.CommandBars("Edit").Controls("Paste Special...").OnAction = "TrappedPaste"
Application.CommandBars("Cell").Controls("Paste").OnAction = "TrappedPaste"
Application.CommandBars("Cell").Controls("Paste Special...").OnAction = "TrappedPaste"
Application.OnKey "^v", "TrappedPaste"
....
此代码工作正常。奇迹发生在全球推出的工作表中,因为“编辑”不是“编辑”,而“粘贴”不是德语,法语和所有其他语言中的“粘贴”(A)leut和(Z)apotec: - 0
问:
提前感谢您提供任何帮助
亲切的问候MikeD
答案 0 :(得分:2)
工具栏上的每个控件都有一个ID
,可以与FindControl
函数一起使用:
? application.CommandBars("Edit").FindControl(msoControlButton, 22).Caption
其中22
是Paste
按钮的ID。据我所知,这个数字在不同的语言中是相同的
所以你可以在英文版中查找它们并对它们进行硬编码。