是否可以在多个其他文档(文档 B、文档 C 和 D)中显示文档 A 中的某个部分(例如段落),以便当我在文档 A、文档 B、文档 C 或文档 D 中编辑它时,它会自动更新所有其他文档中的该段落?
这些段落通常也有要点
目前,我一直在使用超链接来解决这个问题,所以当我到达文档 B 中的某个点,然后想要查看文档 A 中的某个特定段落和一些要点时,我有一个超链接可以将我带到文档 A 中的书签,然后我就可以看到/编辑该段落。
是否可以将文档 A 中的这部分文本嵌入到文档 B 中,以便我可以直接查看和编辑它,而不必单击链接并物理打开文档 A 来查看和编辑它?
本质上几乎就像一个“实时镜像”,所以它是同一部分文本,但同时嵌入到不同的文档中?
例如,请参见这张在油漆上绘制的图表:示例图
我将非常感激任何关于如何做到这一点的建议
提前谢谢了
答案1
Word 中确实没有内置方法可以实现此功能。
我要做的是,将这些规定保存在自动图文集全局模板并使用自动图文集字段将它们插入到文档中。
如果您想修改自动图文集条目,您实际上是在文档中输入自动图文集,进行修改,然后重新保存该条目。
您将需要更新文档中的自动图文集字段。这可能在打印时发生,也可能不发生,具体取决于用户设置。下面是一个执行此操作的宏。
Sub UpdateAllAutoText()
' Update all AutoText fields in a document, even if in headers/footers or textboxes
' https://gregmaxey.com/word_tip_pages/word_fields.html
' November 12, 2020 Charles Kenyon
Dim rngstory As Word.range
Dim lngValidate As Long ' do not know purpose of this - CK
Dim oShp As Shape
Dim oStory As range
Dim oField As Field
lngValidate = ActiveDocument.Sections(1).Headers(1).range.StoryType ' do not know purpose of this
For Each rngstory In ActiveDocument.StoryRanges
'Iterate through all linked stories
For Each oField In oStory.Fields
If oField.Type = wdFieldAutoText Then oField.Update
Next oField
Do
On Error Resume Next
For Each oField In rngstory.Fields
If oField.Type = wdFieldAutoText Then oField.Update
Next oField
Select Case rngstory.StoryType
Case 6, 7, 8, 9, 10, 11
If rngstory.ShapeRange.Count > 0 Then
For Each oShp In rngstory.ShapeRange
If oShp.TextFrame.HasText Then
For Each oField In oShp.TextFrame.Fields
If oField.Type = wdFieldAutoText Then oField.Update
Next oField
End If
Next
End If
Case Else
'Do Nothing
End Select
On Error GoTo 0
'Get next linked story (if any)
Set rngstory = rngstory.NextStoryRange
Loop Until rngstory Is Nothing
Next
'
Set oStory = Nothing
Set oField = Nothing
Set rngstory = Nothing
Set oShp = Nothing
End Sub
同样,如果无法访问包含自动图文集条目的模板,该字段将无法在外部计算机上工作。在将文档发送给其他人之前,您需要取消链接该字段。
这是一个用于取消文档中的自动图文集字段链接的宏。
Sub UnlinkAllAutoText()
' Unlink all AutoText fields in a document, even if in headers/footers or textboxes
' Based on code at http://www.gmayor.com/installing_macro.htm
' Charles Kenyon
' 2 Sept 2020
'
Dim oStory As range
Dim oField As Field
'
For Each oStory In ActiveDocument.StoryRanges
For Each oField In oStory.Fields
If oField.Type = wdFieldAutoText Then oField.Unlink
Next oField
'
If oStory.StoryType <> wdMainTextStory Then
While Not (oStory.NextStoryRange Is Nothing)
Set oStory = oStory.NextStoryRange
For Each oField In oStory.Fields
If oField.Type = wdFieldAutoText Then oField.Unlink
Next oField
Wend
End If
'
Next oStory
'
Set oStory = Nothing
Set oField = Nothing
End Sub
我倾向于使用文档模板具有这些字段的文档。当我想要发送或打印文档时,我会根据模板创建一个新文档。模板具有在创建文档时更新和取消链接自动文本字段的宏。文档模板的宏和 AutoNew 宏显示在我的页面中Microsoft Word 中的样板语言。
披露:有关全局和文档模板的链接转到我的 Microsoft Word 模板网页。