2012-05-30 71 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。然後,只需添加實際的粘貼操作,然後添加自己的代碼即可。

簡而言之:不是爲操作創建事件,而是重新定義操作更容易。

相關問題