回复 22楼 沙枣
这个方法很完美,非常感谢。顺便提供下之前那文档拆分的解决办法——用VBA在word中直接实现的。已经可以把每一页单独保存了,只是美中不足的是,保存的文件名还不能是学生的姓名,而是“通知书-1.DOC”/“通知书-2.DOC”……这种。
在该文档的thisdocument 模块中写入下面的代码,然后运行它即可。
Sub SaveAsPage()
Dim PageCount As Integer, StartRange As Long, EndRange As Long, MyRange As Range, Fn As String, MyDoc As Document
On Error Resume Next
If Dir("D:\通知书", vbDirectory) <> "" Then '判断文件夹是否存在
MsgBox "文件夹存在", , "提示" '提示
Else
MsgBox "文件夹不存在!在D盘创建一个名为“通知书”的文件夹", , "提示" '文件夹不存在的提示
MkDir "D:\通知书"
End If
ChangeFileOpenDirectory "D:\通知书"
PageCount = Selection.Information(wdNumberOfPagesInDocument)
Range(0, 0).Select '将光标移至文档起点
For I = 1 To PageCount '设置循环次数
StartRange = Selection.Start '取得该页的第一个字符位置
Selection.EndKey Unit:=wdLine '将光标移动到该页首行的最后位置
Fn = "通知书-" & I&".DOC"
If I = PageCount Then '如果循环到达最后一页
EndRange = ActiveDocument.Content.End '将文档最后位置赋值于EndRange
Else
Selection.GoToNext (wdGoToPage) '否则,将下一页的起始位置赋值于EndRange(等同于本页的最后位置)
EndRange = Selection.Start
End If
Set MyRange = Range(StartRange, EndRange) '将本页中的内容进行复制
MyRange.Copy
Set MyDoc = Documents.Add '新建一空白文档
MyDoc.Range(0, 0).Paste '在文档开始处粘贴
MyDoc.SaveAs FileName:=Fn '保存文档名
MyDoc.Close '关闭文档
Next
End Sub