|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
先用本论坛守柔兄的代码,粘贴于活动文档中(即你的主文档中)的“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
PageCount = Selection.Information(wdNumberOfPagesInDocument)
Range(0, 0).Select '将光标移至文档起点
For i = 1 To PageCount '设置循环次数
StartRange = Selection.Start '取得该页的第一个字符位置
Selection.EndKey Unit:=wdLine '将光标移动到该页首行的最后位置
Fn = i & ActiveDocument.Name '-1的目的是防止该页首行含有段落标记,导致出错.
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
然后再用批量重命名,就可以实现了
假定你的目录是d:\sample,先进命令提示行用
dir d:\sample /s /b *.* > d:\dir.txt
将目录列表输出至dir.txt
然后用记事本打开上面的dir.txt,复制,选中excel中的C2,粘贴
现在B列应该是新的文件名,C列是目录名
在d2输入="Ren """&c2& """ """&b2&".docx"""""
选中C1到C列的最后一行,比如C1到C100
复制C列数据,在记事本中保存为一个批处理文件,即.bat文件,然后双击运行这个bat |
|