2012-05-30 43 views
1

我想在(活动)文档中的文本更改时立即触发事件。据我所知,WindowSelectionChange是最适合这个。这确实是这样吗?如果是这样,我怎样才能使用它?我已阅读文档here,但我无法理解它,特别是关于哪个代码放在哪个文件中。现在,我已将所有代码放在项目的“模块”文件夹中的默认模块文件中。我不是真的在文档中输入,而是我只做Ctr + A,选择现有内容,Ctrl + V,用新内容替换它。那一刻,我希望事件被触发。VBA MS Word:文本更改时触发事件

+0

没有'WindowSelectionChange'不适合这个,因为它会在'Selection'被改变时触发,这可能非常烦人。 AFAIK和我可能是错的,但没有其他事件可以捕获MS Word中的文本更改。顺便说一句,你想捕捉关键组合'CTL V'或'Pasting'吗?如果是'Paste'事件,那么你可能想看到这个? http://www.jkp-ads.com/articles/catchpaste.asp –

+0

从链接看来,并不是真正的通用粘贴事件,而是点击和关键事件。无论如何,'Application.OnKey'似乎不适用于Word。对我来说,触发事件并不重要,只要'Ctrl + V'都会超过文本并调用宏。直到现在,我还没有能够使其工作:( – Daan

回答

4

虽然我无法找到我的具体问题的解决方案,我没有找到的东西,给我的结果,我想:

Sub EditPaste() 

    Selection.Paste 
    'Other code 

End Sub 

它不太一样为“文本改变”事件,但对我而言,因为我只是通过粘贴新文字来改变文本。因为我以与粘贴actual粘贴事件相同的方式命名Sub,所以每当我粘贴东西时都会调用该Sub。然后,只需添加实际的粘贴操作,然后添加自己的代码即可。

简而言之:不是为操作创建事件,而是重新定义操作更容易。

相关问题