教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 初中教育 >

应用VBA将长文档word按大纲级别拆分为新文件并另存为PDF

来源:网络收集 时间:2026-09-13
导读: 将长文档中的同一级别的内容分别拆分为一个新文件,并同时以新文件内容第一行为文件名保存在当前文件夹中。 Sub 按大纲级别拆分文件() Dim rngrange As Range Dim doc As Document Dim i As Integer Dim j As Integer Dim mys As String Dim levi As Integer

'将长文档中的同一级别的内容分别拆分为一个新文件,并同时以新文件内容第一行为文件名保存在当前文件夹中。

Sub 按大纲级别拆分文件()

Dim rngrange As Range

Dim doc As Document

Dim i As Integer

Dim j As Integer

Dim mys As String

Dim levi As Integer

Dim levj As Integer

Dim contt As String

Dim spendtimestr As String

Application.ScreenUpdating = False

mypath = ActiveDocument.Path

starttime = Time

For i = 1 To ActiveDocument.Paragraphs.Count

If ActiveDocument.Range.Paragraphs(i).OutlineLevel = wdOutlineLevel2 Then

levi = ActiveDocument.Range.Paragraphs(i).OutlineLevel

Set myRange = ActiveDocument.Paragraphs(i).Range

myRange.SetRange myRange.Start, myRange.End - 1

iFilename = Trim(myRange.Text)

j = i 'J等于i,即找到目标的段落,关键点之一

Do

'从即找到目标的段落i开始,依次往后找,一直到找到级别小于或等于目标段落的段落或找到文章的最后,关键点之二

j = j + 1

levj = ActiveDocument.Range.Paragraphs(j).OutlineLevel

Loop Until (levj < levi Or levj = levi Or j = ActiveDocument.Paragraphs.Count)

'级别小于或等于目标段落的段落或找到文章的最后,关键点之三

'如果是件末,则将最后一段内容同时拷贝

If j = ActiveDocument.Paragraphs.Count Then

Set rngrange = ActiveDocument.Range(ActiveDocument.Paragraphs(i).Range.Start, ActiveDocument.Paragraphs(j).Range.End)

rngrange.Select

Selection.Copy

Else

Set rngrange = ActiveDocument.Range(ActiveDocument.Paragraphs(i).Range.Start, ActiveDocument.Paragraphs(j - 1).Range.End)

rngrange.Select

Selection.Copy

End If

Documents.Add

With ActiveDocument.Content

.Paste

End With

Call 页面设置

ActiveDocument.SaveAs FileName:=mypath & "\" & iFilename, FileFormat:=wdFormatPDF ActiveDocument.Close savechanges:=wdDoNotSaveChanges

Else

End If

Next i

endtime = Time

spendtime = Round((endtime - starttime) * 24 * 60 * 60, 3)

spendtimestr = "共费时:" & spendtime & "秒"

MsgBox (spendtimestr)

Application.ScreenUpdating = True

End Sub

Sub 页面设置()

With ActiveDocument.PageSetup

.LineNumbering.Active = False

.Orientation = wdOrientPortrait

.TopMargin = CentimetersToPoints(2)

.BottomMargin = CentimetersToPoints(1.4)

.LeftMargin = CentimetersToPoints(1.8)

.RightMargin = CentimetersToPoints(1.8)

.Gutter = CentimetersToPoints(0)

.HeaderDistance = CentimetersToPoints(1.5)

.FooterDistance = CentimetersToPoints(1.2)

.PageWidth = CentimetersToPoints(14.8)

.PageHeight = CentimetersToPoints(21)

.FirstPageTray = wdPrinterDefaultBin

.OtherPagesTray = wdPrinterDefaultBin

.SectionStart = wdSectionNewPage

.OddAndEvenPagesHeaderFooter = False

.DifferentFirstPageHeaderFooter = False

.VerticalAlignment = wdAlignVerticalTop

…… 此处隐藏:360字,全部文档内容请下载后查看。喜欢就下载吧 ……
应用VBA将长文档word按大纲级别拆分为新文件并另存为PDF.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1563894.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)