谁能告诉我在word里面怎么做多个子文件的目录。
也就是说我又一个很大的文档,加起来上千页,这样放在一个word里面肯定很不方便对吧。所以我把这个文件拆分为若干个小文档。现在我就要将这些小文档的目录全部自动生成到第一个文...
也就是说我又一个很大的文档,加起来上千页,这样放在一个word里面肯定很不方便对吧。所以我把这个文件拆分为若干个小文档。现在我就要将这些小文档的目录全部自动生成到第一个文档中。怎么弄?
展开
3个回答
展开全部
上千页的文档,Word处理起来确实不太顺手。
楼主对长篇大论的处理方法我认为是值得推崇的:每一篇子文档自成体系(有单独的目录),便于读者单独阅读。当多个子文档具有关联性时,将它们的目录合成一个“总目录”,让读者打开总目录文档,根据需要跳转到对应子文档,更人性化的是,跳转到此子文档后,还要自动定位到相应的目录下。
楼主的要求是能够做到的,可以使用宏来处理。
处理思路为:将所有子文档和“总目录文档”都置于相同文件夹中。再新建一个空白文档作目录中转之用,将子文档的目录复制到此“中转文档”中,通过宏代码来自动修改目录中含有的超链接,再将处理过的目录复制到“总目录”中。如此处理完每一个子文档形成的“总目录”就可直接通过单击目录跳转到“对应文档的对应章节”中了。
不能忽略的一个细节是,这个文件夹被移动后,原来总目录中保存的链接就可能会因此失效,所以,总目录文档应该通过宏代码实现每次打开时自动处理文件路径的变化。
接下来这一段代码为“中转处理目录”之用,新建一个宏,将代码复制其中,执行此宏即可自动修改该文档中的目录链接,处理后的链接可以复制到“总目录”文档中使用了。
'这是需要复制的代码
'批量修改目录链接
On Error GoTo handerr
Dim FileStr As String
Dim Str1 As String
Dim i As Integer
Str1 = "请输入该目录所在的文档名:" & vbCrLf & "文档名称应包含后缀名,如:黄帝内经.doc"
FileStr = InputBox(Str1, "文档名称")
FileStr = ThisDocument.Path & "\" & FileStr
'目标文档须与本中转处理文档处于相同目录是便于提取文件路径
If Dir(FileStr, vbDirectory) = "" Then
MsgBox "输入的文档名有误,或与本文档不在同一文件夹中,操作被取消!", vbInformation, "提示"
Exit Sub
End If
'修改链接
With ThisDocument
For i = 1 To .Hyperlinks.Count
.Hyperlinks(i).Address = FileStr & .Hyperlinks(i).Address
Next i
End With
MsgBox "目录已经全部更新,可以复制到总目录中使用了。", vbInformation, "提示"
Exit Sub
handerr:
MsgBox Err.Description, vbInformation, "错误提示"
'上面是需要复制的代码
'-----------------------------------------------------------------------------------------------------------------------------
'如果您认为我提供的思路和方法都可行,请发追问,愿补齐“总目录文档”自动处理路径变化的代码。
楼主对长篇大论的处理方法我认为是值得推崇的:每一篇子文档自成体系(有单独的目录),便于读者单独阅读。当多个子文档具有关联性时,将它们的目录合成一个“总目录”,让读者打开总目录文档,根据需要跳转到对应子文档,更人性化的是,跳转到此子文档后,还要自动定位到相应的目录下。
楼主的要求是能够做到的,可以使用宏来处理。
处理思路为:将所有子文档和“总目录文档”都置于相同文件夹中。再新建一个空白文档作目录中转之用,将子文档的目录复制到此“中转文档”中,通过宏代码来自动修改目录中含有的超链接,再将处理过的目录复制到“总目录”中。如此处理完每一个子文档形成的“总目录”就可直接通过单击目录跳转到“对应文档的对应章节”中了。
不能忽略的一个细节是,这个文件夹被移动后,原来总目录中保存的链接就可能会因此失效,所以,总目录文档应该通过宏代码实现每次打开时自动处理文件路径的变化。
接下来这一段代码为“中转处理目录”之用,新建一个宏,将代码复制其中,执行此宏即可自动修改该文档中的目录链接,处理后的链接可以复制到“总目录”文档中使用了。
'这是需要复制的代码
'批量修改目录链接
On Error GoTo handerr
Dim FileStr As String
Dim Str1 As String
Dim i As Integer
Str1 = "请输入该目录所在的文档名:" & vbCrLf & "文档名称应包含后缀名,如:黄帝内经.doc"
FileStr = InputBox(Str1, "文档名称")
FileStr = ThisDocument.Path & "\" & FileStr
'目标文档须与本中转处理文档处于相同目录是便于提取文件路径
If Dir(FileStr, vbDirectory) = "" Then
MsgBox "输入的文档名有误,或与本文档不在同一文件夹中,操作被取消!", vbInformation, "提示"
Exit Sub
End If
'修改链接
With ThisDocument
For i = 1 To .Hyperlinks.Count
.Hyperlinks(i).Address = FileStr & .Hyperlinks(i).Address
Next i
End With
MsgBox "目录已经全部更新,可以复制到总目录中使用了。", vbInformation, "提示"
Exit Sub
handerr:
MsgBox Err.Description, vbInformation, "错误提示"
'上面是需要复制的代码
'-----------------------------------------------------------------------------------------------------------------------------
'如果您认为我提供的思路和方法都可行,请发追问,愿补齐“总目录文档”自动处理路径变化的代码。
追问
这位朋友,我想你的思路可能和我想的有一点点小问题。这个子文档貌似可以在word里面设置,也就是主控文档和子文档,他们之间的关联是word默认的。不是人为的主观意识。所以说你的方法可能不是很适合。
追答
您的这个整篇文档肯定包含有可以制作目录的大纲级别等索引信息,折成若干子文档后,子文档同样可以使用它们,也就是可以在子文档前面插入各自独立的目录。您将每个子文档的目录复制出来,经过上面的代码处理后,再放到另外一个文档(如“总目录”)中汇总,就可以单击新目录自动跳转到子文档,如果这个子文档没有打开,它也会自动打开,跳转到目录对应的页面内容中。
如果您认为所有的目录要放在第一篇文档中,也可以,那第一篇文档的目录自动生成,不用处理,后面子文档的目录经过如此处理后依次排在第一篇文档目录的后面,也可以单击实现跳转。但问题是,后面这些目录对应的“显示出来的页码”并不是第一篇文档中的页码,看起来别扭。解决的方法就是插入目录时不要右侧的页码。
我觉得做“总目录”控制子文档更好,子文档各自独立,总目录精确控制。就像《大百科全书》一样,在总目录文档中做个“简介”,排列全部目录,读者一目了然。通过它的导航,跳转到各分卷各页码各章节中。
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询