修复 Word 内部文档标题的超链接

修复 Word 内部文档标题的超链接

我在 Word 中有一本 800pg 的手册,里面有很多内部超链接。几周前,我通过在文档内复制粘贴更改了一些小节的顺序;最近我发现许多超链接显示为 file:///C:.... 引用,而不是当前文档,而且有些不起作用。在 ALT-F9 模式下,它们都显示为 {HYPERLINK \I "_whatever..."}。我可以通过调出 control-K 对话框、单击“放置在本文档中”并找到相应的部分(这是一个非常缓慢和痛苦的过程)来使它们逐个起作用。这有时会在超链接文本中添加一个“_1”,我看过一些。我需要能够自动找到所有非功能性内部超链接,最好纠正它们(因为部分名称仍然存在)。有 VB 可以解决这个问题吗?或者甚至能很好地解释发生了什么以及什么可以修复它?花费数周时间进行手动修复不是一个选择。(当前 Word,版本 2209 15629.20156)

答案1

通常情况下,如果没有更多实质内容,我会犹豫是否要给出答案,但看到没有人对这个问题发表任何评论,我想我会尽我所能为您提供帮助!

首先,虽然我不知道导致你的链接断开的原因是什么,但你的链接断开是因为在它们前面添加了下划线“_”;我在下面会更详细地提到,但它们需要以字母开头,然后只包含字母数字字符。我建议你建立一种方法,将某种逻辑约定应用于文件命名、存储、访问等。这将有所不同大大取决于各种变量,例如您的使用设置,例如办公室/文员/管理员?域或仅限本地?文件服务器,现场/异地?或 SMB 共享?安全考虑?您是否有决策权?内部 IT 还是合同?等等。但是,仅举几个例子:

  • 如果您有一个基于域的文件服务器设置,请始终牢记:WHO应该或不应该访问这些数据?他们又应该从哪里访问这些数据?如果设置是针对具有域和现场文件服务器的小型办公室,并且没有特别严格的数据安全限制,那么我建议将存储位置映射到命名的共享目录。这将允许您直接按目录管理访问权限,并且还允许您从集中位置访问文件,因此无需担心版本控制(尽管工作场所培训和文化在这方面仍然发挥着重要作用)。
  • 创建共享目录后,请尝试养成以启用不可知访问(根据现有安全策略允许)的方式制作链接的习惯,即可以从工作站 A 或工作站 B 打开,也可以从设备 C 等打开。例如,如果您超链接到C:\Users\<username>\Documents\File,则由于每个工作站部署的用户名不同,因此很难从其他工作站打开该文件。即使%username%在域环境中考虑可变路径和适当的访问凭证,也取决于每个工作站是否基于 Windows 并以一致的方式部署其环境路径,和/或必须让您的 IT 根据请求更新它们,假设您自己没有访问权限或知识(尽管有时无论是否知道,都无法避免随之而来的延迟)。但是,如果您使用 UNC 路径引用同一个文件,例如 ,则按\\TeamA\Documents\File原样编写的相同超链接将从任何域内的设备(假设他们已被授予必要的权限和/或并给出必要的凭证)。
  • 对于具有file:///协议的超链接,我建议您避免使用它们,因为它们通常由于最近的安全策略范例及其所涉及的漏洞而受到限制。
  • 如果你觉得每次修改超链接很麻烦,那么应该有许多不同的方法来提高你的办公室生活质量(同样,这取决于你的使用设置)。举个例子,我曾经使用过一个名为德国工商会,如果编译(或从服务器访问)则可以完全移植,我通过 USB“钥匙”随身携带(我的钥匙既有形状又有功能)。有了它,您可以定义“热字符串”,它将自动采用您定义的任何简写并将其替换为另一个字符串;例如,您可以定义一条规则,每当您输入 时,!TA它都会自动将该文本替换为\\TeamA\、 或 等。AHK 的妙处在于您还可以创建热键来调用输入,并且输入同样可以包括键输入,而不仅仅是字符串。这可以与“辅助”程序配对,以便更轻松地调用(例如雨量计甚至 Excel),您还可以通过将输入作为文字键输入宏发送来规避某些访问问题(即,程序将输入视为有人实际键入或单击它们,而不是使用 VB 脚本并期望当前工作站配置必要的权限以“开箱即用”地运行它,可以这么说)。
  • 关于您目前节省审核链接的时间和精力的问题,我推荐的一种方法是使用另一个程序来修改内容。例如,记事本++(开源)包含搜索和替换功能,可以选择使用正则表达式搜索格式。在需要修复的链接中找到一个可以用公式表达的共同点,即共享一个可以用数学方法解决的共同特征或逻辑/格式约定。即使您不熟悉正则表达式,您仍然可以通过在执行之前检查所有符合您的约束的条目,然后粘贴回您的 Word 文档中来解决问题。例如,查找file:///c:\users\<user>\Documents\并替换为\\TeamA\Documents\
  • 关于内部链接(即指向书签/标题的链接),用于引用标题的字符串格式有一些规则,例如,必须以字母开头,只能包含字母数字字符,不能有空格等。假设遵守这些规则,您应该能够通过附加#section_name到超链接来表示有问题的部分,其中section_name是被引用的书签的名称。例如,\\TeamA\Documents\File.docx#Section。注意:这应该适用于使用Word或.pdf文件打开时,将文件另存为.pdf应该保留链接。但是,在某些情况下,例如使用动态样式,更改可能会破坏链接,而且除了手动干预之外,似乎没有简单的现成修复方法。就我个人而言,我以前使用Excel的频率比Word高,因为Word在动态链接方面具有更大的功能灵活性。直到几分钟前我才意识到,.docx 文件似乎缺乏处理 URI 查询字符串(例如)的能力.\file.xlsx&activeCell=SheetName!CellNumber,我发现这是同一软件套件中一个奇怪的差异。我目前无法进一步测试,但我怀疑应该有某种方法可以实现类似的效果;.docx 容器本身只是一个由各种 .xml 文件组成的压缩档案,我必须再看一遍,因为我已经有一段时间没有使用它们了。

免责声明:我的一些知识可能已经过时,效果可能不尽如人意,或者只针对特定的使用环境,所以可能因人而异,但我希望至少你可以利用其中的任何部分来避免你提到的最坏情况?祝你好运!

相关内容