Vba 正在寻找将MS Word中跟踪的更改应用于文档特定部分的方法

Vba 正在寻找将MS Word中跟踪的更改应用于文档特定部分的方法,vba,ms-word,Vba,Ms Word,我已经为Word编写了一个VBA宏,它在文档末尾附加了一个审阅条,供同事和管理层审阅。文件中附有审查单的部分受保护,可用于填写表格。我还启用了跟踪更改,但它应用于整个文档。我的问题是,当人们在审核单上输入值时(例如,在审核已发送文档时签字),跟踪的更改会使审核单变得一团糟。管理层确实希望在文档完成审阅和编辑过程后打印此表单,这也是将其附加到文档中的原因之一 类似于我可以限制编辑文档的某一部分,仅填写表单, (例如,ActiveDocument.Sections(ActiveDocument.Se

我已经为Word编写了一个VBA宏,它在文档末尾附加了一个审阅条,供同事和管理层审阅。文件中附有审查单的部分受保护,可用于填写表格。我还启用了跟踪更改,但它应用于整个文档。我的问题是,当人们在审核单上输入值时(例如,在审核已发送文档时签字),跟踪的更改会使审核单变得一团糟。管理层确实希望在文档完成审阅和编辑过程后打印此表单,这也是将其附加到文档中的原因之一

类似于我可以限制编辑文档的某一部分,仅填写表单, (例如,
ActiveDocument.Sections(ActiveDocument.Sections.Count).ProtectedForForms=True
) 我正在寻找VBA代码,它只会对文档的最后一部分以外的所有部分启用跟踪更改

或者,是否有一种方法可以自动接受文档最后一部分中的所有更改

谢谢你,我感谢你花时间阅读和提出建议

谢谢


Dale

您可以使用Word的SelectionChange事件来测试用户正在使用的分区,如果选择在最后一个分区中,则关闭曲目更改。实际代码为:

Private Sub oApp_WindowSelectionChange(ByVal Sel As Selection)
With ActiveDocument
  .TrackRevisions = (.Range(0, Sel.Start).Sections.Count <> .Sections.Count)
End With
End Sub
专用子oApp_窗口选择更改(ByVal选择作为选择)
使用ActiveDocument
.TrackRevisions=(.Range(0,Sel.Start).Sections.Count.Sections.Count)
以
端接头

然而,您不能仅仅使用上面的代码。有关实施,请参阅:

您的方法根本上是错误的,因为您已将签核表单合并到文档本身中。如果我在执行此任务,我会使用文档变量、自定义文档属性或任务窗格来存储审阅者的姓名/输入,然后只使用标准VBA表单来管理签核,并在“审阅”选项卡中使用相关按钮启动表单。毫无疑问,我的做法是错误的,但我需要在有限的可用时间内修改现有的流程,当然,我的人才很少。如果/当我有时间,我会考虑修改流程,以遵循您的建议,但现在我不得不接受这一点。谢谢,戴尔,谢谢你。我真的很希望这样的东西能起作用,但我看到的一切都是布尔值。不过,我非常感谢这个建议。«我所看到的关于.TrackRevisions的一切都是布尔值的»-这正是我发布的代码所使用的。你试过了吗?我想不是。