ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8111|回复: 16

关于主控文档中的子文档路径的修改

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-1-7 20:20 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我主控文档中的子文档都是以全路径形式存在的,将他们拷贝到别的机器上,发现子文档就打不开了。 请问如何修改子文档的路径,最好能够修改成相对路径! 谢谢

TA的精华主题

TA的得分主题

发表于 2006-1-7 20:57 | 显示全部楼层

域中可用的函数太少,很难摆平他,

思想是通过filename \p 取出他的路么,然后用一个函数取出从右向左第一个\开始的右边字符,再用hypelink域来做。

用Excel由相关的函数,但Word没有这些,

见意楼主可以用目录的形式,把字文档放到一个文档中,利用目录跳转。

TA的精华主题

TA的得分主题

发表于 2006-1-8 10:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

请教:

Private Sub Document_close1()
Dim asty As Hyperlink, str As String
Dim i%
'On Error Resume Next
i = 1
str = ActiveDocument.Path
For Each asty In ActiveDocument.Hyperlinks
If asty.Name = str & "\第" & "i" & "章.doc" Then
asty.Range.Select
Selection.MoveEnd Count:=1
'这一句出错 'Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Bookmarks.Add Name:="a" & i, Range:=Selection.Range
i = i + 1
End If
Next
End Sub

在前台却可以完成,为什么VBA中不行。

我的思路是在关闭主文档时,替换为书签,

在打开主文档时,替换为超链接。

但第一步就卡住了。烦请高手出招!

TA的精华主题

TA的得分主题

发表于 2006-1-8 18:06 | 显示全部楼层

KONGGS,这句代码有问题:If asty.Name = str & "\第" & "i" & "章.doc" Then

应改为If asty.Name = str & "\第" & i & "章.doc" Then

另外,请楼主上传你的主控文档,我看一下,好象你也没有说清楚,KONGGS的理解也有些问题,我则更晕。

谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-10 19:15 | 显示全部楼层

谢谢

谢谢版主。 我仅上传了主控文档,其中你可以看到子文档的名字。现在主控文档中的子文档是以全路径的形式存在的,当拷贝到其他机器上时,路径不正确当然打不开了。所以我想将其改成相对路径,这样就能到处拷贝了。 举例: 现在子文档路径为:I:\matching\毕业论文\第1章-概述.doc 我希望改成 .\第1章-概述.doc 再次感谢! Jcp9Fusl.rar (26.52 KB, 下载次数: 35)
[此贴子已经被作者于2006-1-10 19:16:05编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-11 17:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
守柔斑竹,帮我看看这个问题,谢谢了

TA的精华主题

TA的得分主题

发表于 2006-1-13 12:02 | 显示全部楼层

最近非常忙,非常抱歉!

我简单地做了一个,你可以参考修改一下:

Option Explicit

Sub Example()
Dim i As Hyperlink, filePath As String, myArray() As String
Dim myPath As String, NewName As String
myPath = Me.Path
For Each i In Me.Hyperlinks
filePath = i.Address
myArray = VBA.Split(filePath, "\")
NewName = myArray(UBound(myArray))
i.Address = myPath & "\" & NewName
i.TextToDisplay = myPath & "\" & NewName
Next
End Sub
请将该代码置于活动文档的THISDOCUMENT模块中,或者在其它标准模块中,以THISDOCUMENT代码ME关键字。

TA的精华主题

TA的得分主题

发表于 2006-1-13 20:11 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-15 10:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

非常感谢斑竹守柔!

[em17]

TA的精华主题

TA的得分主题

发表于 2006-1-16 21:03 | 显示全部楼层

用不了,版主能说的详细些吗?谢谢

我用的XP-SP2,word2003SP2

以THISDOCUMENT代码ME关键字,是什么意思?详细说说,最好有图示
[此贴子已经被作者于2006-1-16 21:05:29编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 06:52 , Processed in 0.047571 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表