我在一家提供科学论文英文编辑服务的公司工作,我们使用宏来显著加快编辑过程。但是,我们从来不编辑参考文献/参考书目中的任何内容,尽管使用宏来自动执行查找和替换操作,但参考文献中的内容经常会被意外更改。我们使用跟踪更改,所以我正在尝试编写一个宏来拒绝参考文献中的所有更改。
拒绝所有更改的最基本宏是
Sub RejectChanges()
Selection.Range.Revisions.RejectAll
End Sub
但这显然适用于整个文档。代码的“选择”部分似乎暗示您可以编写仅适用于文本不同部分的代码。这可能吗?
干杯
答案1
尝试这样做。它旨在针对现有文档运行,其中引用可能已意外更改。
Sub ScanRevisions()
Dim doc As Word.Document
Dim rng As Word.Range
Dim eNote As Word.Endnote
Dim fNote As Word.Footnote
Set doc = ActiveDocument
Set rng = doc.Content
For Each eNote In doc.Endnotes
If eNote.Range.Revisions.Count > 0 Then
eNote.Range.Revisions.RejectAll
End If
Next
For Each fNote In doc.Footnotes
If fNote.Range.Revisions.Count > 0 Then
fNote.Range.Revisions.RejectAll
End If
Next
With rng.Find
.ClearFormatting
.Format = True
.Forward = True
.Style = doc.Styles("Bibliography").NameLocal
.Text = ""
.Wrap = wdFindStop
While .Execute
If rng.Revisions.Count > 0 Then
rng.Revisions.RejectAll
End If
rng.Collapse Word.WdCollapseDirection.wdCollapseEnd
Wend
End With
End Sub