根据单元格更改值触发VBA Word宏

时间:2015-10-29 14:28:36

标签: .net vba ms-word word-vba

您好我需要根据.Net应用程序更改的值触发vba中的宏。例如,我有以下模板 Template populated by .Net application

我有以下代码,当它的值被填充时需要在Cell(3,1)上做子串。

Sub Format()
Dim Str1 As String
Dim Str2 As String

tbl = ActiveDocument.Tables(1)
Str1 = tbl.Cell(3, 1).Range.Text
Str2 = Split(Str1, " ")(0)
tbl.Cell(3, 1).Range.Text = Str2

End Sub

问题是,当Cell(1,3)中的值从<>更改时,需要触发此问题。 “这是标题三”

1 个答案:

答案 0 :(得分:0)

除非您设置Windows API Keyboard挂钩以监控用户正在执行的所有操作,否则在用户在Word中进行编辑时不会触发任何事件。

当用户进入/离开表格单元格时,将触发Word.Application对象的WindowSelectionChange事件。您可以监视它,检查是否通过输入相关单元格触发它,如果是这种情况设置一个布尔值。当事件显示它离开单元格时,重置布尔值并检查当前单元格内容。

您只需要注意,监视此事件可能会影响Word应用程序的速度/效率。