副本上的VBA事件触发器?

时间:2014-12-11 18:17:41

标签: vba excel-vba excel

VBA中是否有方法,在excel中我复制单元格的值会触发我的函数?

或者为此做任何解决方法?

或者我可以阅读按键并听取Ctrl + C吗?

或者VBA可以读取复制文本的内容吗?

原因是:我将一些条目从Excel工作表复制到另一个程序,我想自动添加例如灰色字体颜色到已经复制的所有条目。

3 个答案:

答案 0 :(得分:3)

为宏指定快捷键。

例如,如果您的宏是这样的:

Sub CopyAndMarkAsCopied()
    Dim r As Range
    Set r = Selection
    With r
        .Copy
        .Font.Color = RGB(100, 100, 100) 'dark grey font
        .Interior.Color = RGB(200, 200, 200) 'light gray background
        'whatever else
    End With
End Sub

在Excel 2010中,在Developer>中查看宏。宏(或键盘快捷键 Alt - F8 )。在早期版本的Excel中,菜单略有不同,但键盘快捷键的工作方式相同。

在列表中选择您的宏,然后单击选项... 。在此对话框中,您可以为宏指定快捷键。它可以是:

  • Ctrl - 某些字母,在这种情况下你必须输入一个小写字母;或
  • Shift - Ctrl - 某些字母;输入一个大写字母。

在这个例子中,我选择 Ctrl - Shift - C (请注意下面屏幕截图中的大写C)。

我可能不会屏蔽我通常使用的默认键盘快捷键,例如 Ctrl - C ,但如果这是你的话,你可以自由地这样做。

enter image description here

Ctrl - Shift - C 时的操作示例:

答案 1 :(得分:1)

您可以使用 OnKey 语句将宏指定给 Cntrl + c

请参阅:

http://msdn.microsoft.com/en-us/library/office/ff197461(v=office.15).aspx

答案 2 :(得分:0)

以下是先前给出的OnKey语句建议的示例:

Application.OnKey" {UP}"," PressUp" Application.OnKey" {DOWN}"," PressDown"

" PressUp"和#34; PressDown"是应该运行的潜艇的名称。我会犹豫是否制作一个快捷方式来运行已经分配了预先存在的宏的宏。如果您在按ctrl + c时指定要运行的宏,它将覆盖它已有的复制功能。