我在同一台机器上使用 macos Ventura 上的 Word 365 和 Windows 11(Win11 在 Parallels 上运行,这使得 Windows 和 Mac 可以共享文件系统和剪贴板)。
我想要复制正在审阅的 Word 365 文档中的可见文本,并将纯文本粘贴到各个地方(例如富文本编辑器、Safari、Keynote、Illustrator 或 Windows 上类似的非 Microsoft 创作程序)。
已启用“跟踪修订”,并且有多人正在编辑文档。文档中正在添加注释和更改,但这些更改尚未准备好标记为已接受。我想复制文档中显示的文本,但不希望注释和更改也被复制。Word 和许多其他程序都有清除粘贴格式的选项 - 但并非所有程序都支持。有些程序有粘贴为纯文本的选项,但并非所有程序都支持,而且它并不总是有效。
例如,当我选择我想要的文本并复制它时:
然后在另一个支持丰富格式的程序中我按“粘贴”并获取文本及其更改历史记录。
当我切换到 Windows 并粘贴到仅支持文本框输入区域中的纯文本的程序中的编辑器中时,我也会获得完整的值:
如果我将其粘贴到记事本中,它只会显示文本。
因此,根据我使用的程序,粘贴的工作方式会有所不同,这意味着来源不仅仅是我以为我复制的文本,它可能包含隐藏的额外字符。
更糟糕的是,Word没有显示我复制的文本有编辑历史,所以只有在复制和粘贴时才会发现这些数据。在这个小例子中,很容易发现,但是当有更大的文本块(多个段落或页面)时,就意味着必须返回并检查,或者在工作流程中添加额外的步骤才能完成简单的复制文本操作。必须复制所有内容(从 Word 到记事本再到其他任何地方)是一件非常愚蠢的事情。我看到的其他建议是复制文档并接受所有更改,然后复制文本,然后扔掉该文档并(随着更多更改发生)复制、接受并再次复制 - 真是浪费时间,真的。
Word 有一个设置“在剪贴板上包含格式化的文本”,你会认为正是我想要的。但它仍然将历史更改复制到文本中(只是没有样式),所以这根本不是一个答案。
有没有一种方法可以只复制实际可见值而不是历史记录/元数据,这种方法可以在每个程序中都有效,而不仅仅是支持自定义粘贴功能的程序,而且[重要的是]不是我必须先使用“接受更改”的程序。
答案1
您可以通过将视图切换为“无标记”并在该模式下复制文本来实现此目的。您还可以在 VBA 中创建一个简单的宏来执行相同的操作:
Sub copyText()
Dim oldView As Integer
oldView = ActiveWindow.View.RevisionsFilter.Markup
ActiveWindow.View.RevisionsFilter.Markup = wdRevisionsMarkupNone
Selection.Copy
ActiveWindow.View.RevisionsFilter.Markup = oldView
End Sub