[QUOTE]
最初由 012345689 发布[B]财务工作中制作的大量Word和Excel文件,内部有相当多的UNC路径衔接。
因文件服务器调整,原衔接UNC路径失效。不过文件之间的相对路径没有调整。
请问有什么好办法可以批量调整文件中的UNC路径衔接? [/B][/QUOTE]
最方便的是用VBA来实现, 只用到Hyperlinks和Hyperlink对象.
[*]假设你在word中, 按Alt+F11调出VB
[*]添加模块, 如下图
[*]在新模块中添入代码(如下):
Public Sub RepAllHL()
Dim hLink As Hyperlink
Dim sSeek As String, sReplace As String
sSeek = InputBox("输入要替换的文字", "sSeek")
sReplace = InputBox("想把" & sSeek & "替换为什么呢?", "sReplace")
For Each hLink In ThisDocument.Hyperlinks
hLink.Address = RepStr(hLink.Address, sSeek, sReplace)
Next hLink
End Sub
Private Function RepStr(sPool As String, sOriginal As String, sNew As String) As String
Dim i As Integer, s As String
i = InStr(1, sPool, sOriginal)
If i = 0 Then Exit Function 'no match
s = Left(sPool, i - 1) & _
sNew & _
Right(sPool, Len(sPool) - Len(sOriginal) - i + 1)
Debug.Print sPool & " is changed to " & s
RepStr = s
End Function
[*]运行, 如下图
[*]第一个参数填入想要替换的部分, 如下图, 假设你想替换所有url中首次出现的"3721"字样,则填入3721. (可以为空)
[*]第二个参数填入"替换为"部分, 比如:
(可以为空)
个人意见是:使用office的Hyperlink Base功能, 这样所有文档中的url只要填入相对路径即可.在File-->properties-->summary中可以设定. 详细的请参考Help, 搜索Hyperlink Base