本页主题: Word & Excel 衔接问题 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

012345689
级别: 新手上路


精华: 0
发帖: 7
威望: 0 点
金钱: 74 静电币
支持度: 0 点
在线时间:0(小时)
注册时间:2004-02-29
最后登录:2004-05-15

 Word & Excel 衔接问题

财务工作中制作的大量Word和Excel文件,内部有相当多的UNC路径衔接。
因文件服务器调整,原衔接UNC路径失效。不过文件之间的相对路径没有调整。
请问有什么好办法可以批量调整文件中的UNC路径衔接?
Posted: 2004-03-03 10:11 | [楼 主]
galilette
级别: 嘉宾


精华: 30
发帖: 2139
威望: 1382 点
金钱: 0 静电币
支持度: 0 点
在线时间:3012(小时)
注册时间:2002-05-01
最后登录:2019-03-12

 

[QUOTE]最初由 012345689 发布
[B]财务工作中制作的大量Word和Excel文件,内部有相当多的UNC路径衔接。
因文件服务器调整,原衔接UNC路径失效。不过文件之间的相对路径没有调整。
请问有什么好办法可以批量调整文件中的UNC路径衔接? [/B][/QUOTE]
最方便的是用VBA来实现, 只用到Hyperlinks和Hyperlink对象.

    [*]假设你在word中, 按Alt+F11调出VB
    [*]添加模块, 如下图

    [*]在新模块中添入代码(如下):
    Copy code
    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
Posted: 2004-03-03 13:14 | 1 楼
012345689
级别: 新手上路


精华: 0
发帖: 7
威望: 0 点
金钱: 74 静电币
支持度: 0 点
在线时间:0(小时)
注册时间:2004-02-29
最后登录:2004-05-15

 

Great,let me try.

Thx anywhy.
Posted: 2004-03-03 17:33 | 2 楼
帖子浏览记录 版块浏览记录
狗狗静电BBS - wwW.DoGGiEhoMe.CoM » 电脑全方位 Computer Guide

沪ICP备05008186号
Powered by PHPWind Styled by MagiColor